我有一个应用程序,当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后重定向页面
基础教程推荐
- winform把Office转成PDF文件 2023-06-14
- C# windows语音识别与朗读实例 2023-04-27
- C# List实现行转列的通用方案 2022-11-02
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26
- C#类和结构详解 2023-05-30
- ZooKeeper的安装及部署教程 2023-01-22
- unity实现动态排行榜 2023-04-27
- 一个读写csv文件的C#类 2022-11-06
- C#控制台实现飞行棋小游戏 2023-04-22
- C# 调用WebService的方法 2023-03-09