我正在开发Windows Phone应用,需要实现以下功能: -
应用中已登录部分。如果用户空闲5分钟,MessageBox应该说“会话超时。请再次登录”。使用消息框上的“确定”按钮,然后单击“确定”按钮,用户将退出应用程序并登录页面。
这已成功实施,但如果用户单击Windows Phone的“硬件后退”按钮,则消息框将消失,即使5分钟后用户仍可访问该应用程序。
请告诉我如何在MessageBox处于打开状态时限制硬件返回,并且消息框应保持活动状态,直到用户单击“确定”按钮为止。
提前致谢。
此致 Jatin Juneja
答案 0 :(得分:0)
只需在页面上覆盖make this事件。
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
base.OnBackKeyPress(e);
e.Cancel = true;
}
e.Cancel = TRUE;抑制后退按键。
答案 1 :(得分:0)
我会关注har07评论并使用MessageBoxReasult
,它可以看一个非常简单的示例:
MessageBoxResult result = MessageBox.Show("Session Time Out. Log in again?", "Question", MessageBoxButton.OKCancel);
// code after user click
if (result == MessageBoxResult.OK) NavigationService.Navigate(new Uri("/LoginPage.xaml", UriKind.RelativeOrAbsolute));
else NavigationService.GoBack();
当你显示MessageBox时点击BackButton - 结果将是取消。
上面的代码只是一个简单的例子,需要一些改进 - 这取决于您的导航流程 - 在导航到LoginPage之后,最好清除NavigationStack(删除已登出的上一页)。
答案 2 :(得分:0)
Aman和Romasz所说的是正确的,但不是通过所有这些,你可以这样做:
1-会话到期后,导航到您的登录页面:
NavigationService.Navigate(new Uri("/Login.xaml", UriKind.Relative));
2-现在,您可以显示一个消息框,通知用户有关会话过期的内容,而不必担心用户按下了什么。或者更吸引人/更好看的解决方案是在消息框内但在登录/登录按钮下方的文本框内显示消息。我就是这样做的!