Window.Current.Activated未在每次UI交互中触发

时间:2016-12-12 08:02:09

标签: c# xaml events uwp

我正在研究UWP应用程序,并且我的逻辑依赖于应用程序焦点的获得/损失:

    ...

Window.Current.Activated += Current_Activated;
    ...
//My code depends on this flag
public bool IsViewCurrentlyInFocus { get; private set; }

private void Current_Activated(object sender, WindowActivatedEventArgs e)
{
    IsViewCurrentlyInFocus = e.WindowActivationState != CoreWindowActivationState.Deactivated;
}

我注意到用户可以与我的应用程序进行交互(例如:滚动列表视图),但事件未被提升 - 仅在点击/点击页面时...

如何确定与我的应用程序进行某种交互?

提前致谢

1 个答案:

答案 0 :(得分:1)

请参阅documentation

  

当窗口成为前景窗口时发生。

简而言之,这是一个Window事件,它不会影响窗口中的元素。在您的方案中,您可以使用IsActive属性来确定是否正在使用Window。对于单个元素,我建议分别使用GotFocus事件和IsFocused属性。

如果您专门尝试检测ListView中的滚动,这是不可能的,但您可以检查this answer