win10 uwp 獲得焦點改變
阿新 • • 發佈:2019-02-07
本文講的是當我們應用失去焦點時,我們獲得事件,當我們應用獲得焦點,同樣獲得事件。同時,在應用不可以見時,我們也可以獲得。
上面一張圖,開始是應用啟動,獲得焦點,應用顯示。然後我們開啟另一個應用,切換,這時我們應用沒有焦點。
然後我們用滑鼠點選應用,我們應用獲得焦點,這時顯示滑鼠點選獲得焦點。
我們使用Alt+tab,切換出去別的軟體,然後使用Alt+tab切換回,可以看到獲得焦點。
然後點選工作列,把應用最小化,這時我們的應用不顯示,因為點開他就顯示,我就使用字串+
這樣我們的應用就可以獲得失去焦點和從哪獲得焦點、應用不顯示。
我們應用有兩個事件,一個是Window.Current.Activated
Window.Current.VisibilityChanged
,我們可以通過Window.Current.Activated
來知道,我們的應用得到焦點。
UWP應用獲得焦點可以使用Window.Current.Activated
,事件引數有幾個,WindowActivatedEventArgs e
,CoreWindowActivationState
有
CodeActivated
從作業系統拿到焦點,這個就是我們使用Alt+tab,不是滑鼠點選的獲得焦點。我們這裡,用滑鼠點選工作列開啟應用,是作業系統給應用焦點。
PointerActivated
滑鼠點選獲得焦點,用滑鼠點選應用。
Deactivated
沒有焦點。
我用簡單的字串繫結到View,我們可以看到,我們應用失去焦點和獲得焦點。
private void Current_Activated(object sender, WindowActivatedEventArgs e)
{
if (e.WindowActivationState == CoreWindowActivationState.CodeActivated)
{
ActivateReminder = "獲得焦點\r\n" ;
}
else if (e.WindowActivationState == CoreWindowActivationState.PointerActivated)
{
ActivateReminder = "滑鼠點獲得\r\n";
}
else if (e.WindowActivationState == CoreWindowActivationState.Deactivated)
{
ActivateReminder = "沒焦點\r\n";
}
}
我們可以用Window.Current.VisibilityChanged
獲得我們應用顯示,引數VisibilityChangedEventArgs e
如果e.Visible==true
就是顯示。
我們把應用最小化,應用就會不顯示。