正如Microsoft所述,无法以编程方式从主页面导航。我有一个EULA页面,如果用户第一次使用该应用程序,我需要显示该页面。我的计划是在主页面上确定以前是否使用过该应用程序。如果没有,我原本计划导航到EULA页面,但这是不可能的。如何绕过此导航限制?
答案 0 :(得分:6)
自动推送到后台堆栈的专用EULA页面的问题是,当用户在EULA页面中按下Back键时,应用程序将不会退出。
您应该使用在适当时显示和隐藏的Popup控件。
有关详细信息和背景信息,请参阅Peter Torr's post on how to exit an application。
答案 1 :(得分:3)
应该可以使用以下方法轻松地从主页面导航:
if (!eulaAgreed)
NavigationService.Navigate(new Uri("/EULAPage.xaml", UriKind.Relative));
可能最好将此代码放在主页的OnNavigatedTo中,或者甚至在页面周期的后期使用Dispatcher.BeginInvoke(...)
。把它放在那之前(即在构造函数或Loaded中)可能不起作用。
答案 2 :(得分:1)
您认为导航堆栈会发生什么? 用户是否可以再次访问EULA页面?也许是从MainPage点击返回?