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

空闲状态检测silverlight 4应用程序,silverlight,python-idle,dispatchertimer,Silverlight,Python Idle,Dispatchertimer,检测silverlight应用程序空闲状态的最佳方法是什么?到目前为止,我已经在网上读了不少文章,通常都是针对wpf/移动应用程序等的 我已经创建了一个Dispatcher,它在5分钟后锁定屏幕,似乎我必须进入每个屏幕中的每个小部件(我的应用程序大约有4-5个屏幕),并添加一个mousebuttondown或mouseenter eventhandler来重置此计时器。这似乎效率不高,但仅仅将处理程序添加到layroot也没有帮助 有什么有用的建议吗 谢谢您不需要修改每个控件。如果在启动时添加以

检测silverlight应用程序空闲状态的最佳方法是什么?到目前为止,我已经在网上读了不少文章,通常都是针对wpf/移动应用程序等的

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

有什么有用的建议吗


谢谢

您不需要修改每个控件。如果在启动时添加以下代码:

Application.Current.RootVisual.MouseMove += new MouseEventHandler(RootVisual_MouseMove);
Application.Current.RootVisual.KeyDown += new KeyEventHandler(RootVisual_KeyDown);
使用以下事件处理程序:

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

private void RootVisual_MouseMove(object sender, MouseEventArgs e)
{
    idle = false;
}
其中,
idle
是您在
Dispatchermer
勾选事件中使用的变量,用于检查事件是否正在发生


当事件在树上冒泡时,这应该适用于所有控件。

处理的事件不会冒泡到根控件。相反,您应该将
AddHandler
方法与
handleEventsToo=true

@user64270:一起使用,只要您的ChildWindows打开时间不超过空闲超时时间。