就目前而言,大多数的wp软件在退出时都会弹出一个MessageBox来提示用户是否退出软件,不过最近一两个月,如uc和qq都改用两次点击返回键退出的设计了。这样体验上有了明显的提升。我也大致写了一下,不过感觉自己没写好,效率有点低,做个抛砖引玉的作用吧!

其实这个思路很简单,就是在第一次按下返回键的时候,添加一个计时器,如果在规定时间内再次按下返回键,则退出程序.

贴代码:

首先在构造函数前添加:

DispatcherTimer dt = new DispatcherTimer();
bool IsExit = false;

然后在构造函数里添加:

dt.Interval = TimeSpan.FromSeconds(2);
dt.Tick += (s, e) =>
{
    if (IsExit)
    {
        IsExit = false;
        dt.Stop();
    }
};

然后重载返回键:

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
            base.OnBackKeyPress(e);
            if (!IsExit)
            {
                ExitSB.Begin();
                IsExit = true;
                dt.Start();
                e.Cancel = true;
            }
            else
            {
                dt.Stop();
                ExitSB.Stop();
            }
}

ExitSB是一个第一次按返回键的提示动画,类似UC浏览器那样.也可以换成其他的做提示。就不贴Demo了。

Image