我有一个应用程序,当RootFrame首次初始化时,我会检查它是否是第一次启动应用程序.如果是,则将RootFrame UriMapper更改为教程页面.问题是,我似乎无法想出一种方法将用户重定向回MainPage.xaml.到目前为止它不会做任何...
我有一个应用程序,当RootFrame首次初始化时,我会检查它是否是第一次启动应用程序.如果是,则将RootFrame UriMapper更改为教程页面.问题是,我似乎无法想出一种方法将用户重定向回MainPage.xaml.到目前为止它不会做任何事情.
这是我用于更改App构造函数中的初始启动页面的代码:
if (App.Model.SelectFirstStart())
{
var mapper = new UriMapper();
mapper.UriMappings.Add(new UriMapping
{
Uri = new Uri("/MainPage.xaml", UriKind.Relative),
MappedUri = new Uri("/TutorialPage.xaml", UriKind.Relative)
});
RootFrame.UriMapper = mapper;
}
当用户点击教程页面中的按钮时,它应该将它们重定向到MainPage.xaml.这是我到目前为止所尝试的:
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
和:
App.RootFrame.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
任何帮助将非常感激.谢谢
解决方法:
我看到了几个问题.
首先,您没有更改教程页面中的映射,因此基本上MainPage.xaml仍然映射到TutorialPage.xaml.
第二个问题是即使在修复之后,导航到MainPage.xaml仍然无法工作,因为尽管实际页面是TutorialPage.xaml,RootFrame.CurrentSource仍将指向MainPage.xaml,无论如何.
要解决此问题,您需要在教程页面的按钮单击中执行以下操作
// Inside the Button click event of TutorialPage.xaml
// Change the mapping so that MainPage points to itself
((UriMapper)App.RootFrame.UriMapper).UriMappings[0].MappedUri =
new Uri("/MainPage.xaml", UriKind.Relative);
// Since RootFrame.CurrentSource is still set to MainPage, you need to pass
// some dummy query string to force the navigation
App.RootFrame.Navigate(new Uri("/MainPage.xaml?dummy=1", UriKind.Relative));
// Remove back entry so that if user taps the back button
// you won't get back to tutorial
App.RootFrame.RemoveBackEntry();
本文标题为:c# – 在Windows Phone 8中更改UriMapper后重定向页面
- Unity3D实现渐变颜色效果 2023-01-16
- Unity Shader实现模糊效果 2023-04-27
- .NET CORE DI 依赖注入 2023-09-27
- c# 模拟线性回归的示例 2023-03-14
- Oracle中for循环的使用方法 2023-07-04
- 在C# 8中如何使用默认接口方法详解 2023-03-29
- C# 使用Aspose.Cells 导出Excel的步骤及问题记录 2023-05-16
- user32.dll 函数说明小结 2022-12-26
- 如何使用C# 捕获进程输出 2023-03-10
- WPF使用DrawingContext实现绘制刻度条 2023-07-04