空闲状态检测silverlight 4应用程序

use*_*770 6 silverlight dispatchertimer python-idle

检测Silverlight应用程序的空闲状态的最佳方法是什么?我现在已经在网上阅读了不少文章,通常它们都是针对wpf /移动应用程序等.

我创建了一个DispatcherTimer,它在5分钟后锁定屏幕,似乎我必须在每个屏幕中转到每个小部件(我的应用程序有大约4-5个屏幕)并添加一个mousebuttondown或mouseenter eventhandler来重置此计时器.这似乎没有效率,但只是将处理程序添加到layroot也没有帮助.

任何有用的建议?

谢谢

Chr*_*isF 5

您无需修改​​每个控件.如果在启动时添加以下代码:

Application.Current.RootVisual.MouseMove += new MouseEventHandler(RootVisual_MouseMove);
Application.Current.RootVisual.KeyDown += new KeyEventHandler(RootVisual_KeyDown);
Run Code Online (Sandbox Code Playgroud)

使用以下事件处理程序:

private void RootVisual_KeyDown(object sender, KeyEventArgs e)
{
    idle = false;
}

private void RootVisual_MouseMove(object sender, MouseEventArgs e)
{
    idle = false;
}
Run Code Online (Sandbox Code Playgroud)

idle您在DispatcherTimer Tick事件中使用的变量在哪里检查事情是否发生.

当事件冒泡树时,这应适用于所有控件.