1. 程式人生 > >win10 uwp 獲得焦點改變

win10 uwp 獲得焦點改變

本文講的是當我們應用失去焦點時,我們獲得事件,當我們應用獲得焦點,同樣獲得事件。同時,在應用不可以見時,我們也可以獲得。

這裡寫圖片描述

上面一張圖,開始是應用啟動,獲得焦點,應用顯示。然後我們開啟另一個應用,切換,這時我們應用沒有焦點。

然後我們用滑鼠點選應用,我們應用獲得焦點,這時顯示滑鼠點選獲得焦點。

我們使用Alt+tab,切換出去別的軟體,然後使用Alt+tab切換回,可以看到獲得焦點。

然後點選工作列,把應用最小化,這時我們的應用不顯示,因為點開他就顯示,我就使用字串+這樣我們的應用就可以獲得失去焦點和從哪獲得焦點、應用不顯示。

我們應用有兩個事件,一個是Window.Current.Activated

一個Window.Current.VisibilityChanged,我們可以通過Window.Current.Activated來知道,我們的應用得到焦點。

UWP應用獲得焦點可以使用Window.Current.Activated,事件引數有幾個,WindowActivatedEventArgs eCoreWindowActivationState

  • 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就是顯示。

我們把應用最小化,應用就會不顯示。