我知道这个问题已经被讨论得令人作呕,但我想介绍一下我的情况......
我的应用程序中的起始页是login.xaml。用户登录,用户名和密码通过我的WCF服务进行身份验证,用户名保存在独立存储中,然后用户被重定向到mainpage.xaml。
当用户启动我的应用程序,并且他们已经在独立存储中保存了用户名时,他们会被重定向到 mainpage.xaml
如果用户点击 mainpage.xaml 中的“后退”硬按钮,则会重定向到登录屏幕,登录屏幕又将用户重定向回 mainpage.xaml,因为他们已经保存了本地用户名。这导致我的应用程序当前无法通过认证,因为用户无法点击“后退”按钮从 mainpage.xaml 退出应用程序。
我的本能是重写 mainpage.xaml 中的 BackKeyPress 并以某种方式退出应用程序。通过阅读其他帖子,我发现这个方法不可用。我的第二个想法是以某种方式在 app.xaml.cs 页面中存储一个属性,该属性会告诉应用程序在加载登录页面并将该属性设置为 true 时退出,但这似乎也有点 hacky...
这里有什么想法吗?
使用的更新解决方案:
最终的工作是使登录页面成为 mainpage.xaml 中的枢轴项。当用户在未登录的情况下打开应用程序时,当前选择的数据透视项将更改为登录数据透视项。如果用户打开应用程序并登录,则将选择正常的数据透视项。
为此,我将登录页面和主页合并到一个页面中,并在堆栈面板中包含两个网格,并操纵网格的可见性以在匿名用户和经过身份验证的用户所需的 UI 之间切换。这使得问题消失,无需欺骗历史或摆弄标志。
有了合适的转换器和可见性属性的适当绑定,我可能可以在没有显式代码的情况下运行整个节目,但这将是聪明和聪明之间区别的一个很好的例子 - 它工作得很好,迟早我会forget它是如何工作的(好吧,我承认,我这样做了,但忘记了它是如何工作的)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)