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

发布于 2024-11-16 13:50:20 字数 274 浏览 3 评论 0原文

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

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

有什么有用的建议吗?

谢谢

What's the best way to detect idle state for a silverlight application? I have read quite a few articles on the net by now and usually they are either for wpf/mobile apps etc.

I have created a DispatcherTimer which locks the screen after 5 minutes and it seems that I will have to go to every widget in every screen(my application has around 4-5 screens) and add a mousebuttondown or mouseenter eventhandler to reset this timer. This doesn't seem to be efficient but just adding the handler to the layroot is not helping either.

Any helpful suggestions?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

随风而去 2024-11-23 13:50:20

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

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 事件中使用的要检查的变量事情是否发生。

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

You don't need to modify every control. If you add the following code on startup:

Application.Current.RootVisual.MouseMove += new MouseEventHandler(RootVisual_MouseMove);
Application.Current.RootVisual.KeyDown += new KeyEventHandler(RootVisual_KeyDown);

With the following event handlers:

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

private void RootVisual_MouseMove(object sender, MouseEventArgs e)
{
    idle = false;
}

Where idle is the variable you use in your DispatcherTimer Tick event to check if things are happening or not.

As events bubble up the tree this should work for all your controls.

你与清晨阳光 2024-11-23 13:50:20

处理的事件不会冒泡到根控件。相反,您应该使用带有 handledEventsToo = trueAddHandler 方法。

Handled events will not bubble up to root control. Instead you should use the AddHandler method with handledEventsToo = true.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文