zoukankan      html  css  js  c++  java
  • 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 = "获得焦点
    ";
    
                }
    
                else if (e.WindowActivationState == CoreWindowActivationState.PointerActivated)
    
                {
    
                    ActivateReminder = "鼠标点获得
    ";
    
                }
    
                else if (e.WindowActivationState == CoreWindowActivationState.Deactivated)
    
                {
    
                    ActivateReminder = "没焦点
    ";
    
                }
    
            }
    

    我们可以用Window.Current.VisibilityChanged获得我们应用显示,参数VisibilityChangedEventArgs e如果e.Visible==true就是显示。

    我们把应用最小化,应用就会不显示。

    参见:http://grogansoft.com/blog/?p=1269

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

  • 相关阅读:
    123457123457#0#-----com.tym.YuErBaiKeTYM--前拼后广--育儿百科
    123457123456#0#-----com.tym.XueYingYu01--前拼后广--小学英语tym
    123457123456#0#-----com.cym.shuXue02--前拼后广--开心学数学
    Spring事务失效的2种情况
    算法之排序
    JDK、Spring和Mybatis中使用到的设计模式
    MyBatis中#{}和${}的区别详解
    Redis为什么这么快
    java多线程之ScheduleThreadPoolExecutor
    java多线程之ThreadPoolExecutor
  • 原文地址:https://www.cnblogs.com/lindexi/p/12087470.html
Copyright © 2011-2022 走看看