检测 silverlight 应用程序空闲状态的最佳方法是什么?到目前为止,我已经在网上阅读了很多文章,通常它们是针对 wpf/移动应用程序等的。
我创建了一个 DispatcherTimer,它在 5 分钟后锁定屏幕,看来我必须转到每个屏幕中的每个小部件(我的应用程序有大约 4-5 个屏幕)并添加一个 mousebuttondown 或 mouseenter 事件处理程序来重置此计时器。这似乎效率不高,但只是将处理程序添加到layroot也无济于事。
有什么有用的建议吗?
谢谢
检测 silverlight 应用程序空闲状态的最佳方法是什么?到目前为止,我已经在网上阅读了很多文章,通常它们是针对 wpf/移动应用程序等的。
我创建了一个 DispatcherTimer,它在 5 分钟后锁定屏幕,看来我必须转到每个屏幕中的每个小部件(我的应用程序有大约 4-5 个屏幕)并添加一个 mousebuttondown 或 mouseenter 事件处理程序来重置此计时器。这似乎效率不高,但只是将处理程序添加到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
您在DispatcherTimer
Tick
事件中用来检查事情是否正在发生的变量在哪里。
随着事件在树中冒泡,这应该适用于您的所有控件。
处理的事件不会冒泡到根控制。相反,您应该使用AddHandler
带有handledEventsToo = true
.