Silverlight 4应用程序中的不活动超时示例代码(使用MVVM)

时间:2011-02-14 20:45:06

标签: silverlight mvvm timeout

我正在构建我的第一个SL Out of Browser应用。说不活动20分钟后,我想设置我的App.IsAuthenticated = false,并重定向到登录页面。

我已经搜索了这个,我已经阅读了很多关于将mousemove / keydown事件处理程序与调度计时器一起使用的讨论,但我还没有看到任何代码显示如何完成。

我正在使用MVVM,如果这有所不同(例如代码将进入我的MainViewModel,所以我想要示例代码来适应该模式)。

有人可以为此提供示例代码吗?这很简单我很确定,但我在上个月左右只用.NET编写代码,而且大多数都是SL。

谢谢, 斯科特

1 个答案:

答案 0 :(得分:2)

用于演示的5秒计时器:

public partial class MainPage : UserControl
{
    private DispatcherTimer timer;
    public MainPage()
    {
        InitializeComponent();
        timer = new DispatcherTimer(){Interval = TimeSpan.FromSeconds(5)};
        timer.Tick += (s, e) => { this.textBlock.Text = "Time out"; this.timer.Stop(); };
        timer.Start();
    }

    protected override void OnMouseMove(MouseEventArgs e)
    {
        base.OnMouseMove(e);
        timer.Start();
    }

    protected override void OnKeyDown(KeyEventArgs e)
    {
        base.OnKeyDown(e);
        timer.Start();
    }
}