我在UWP中遇到导航系统问题.
我有3个不同的页面,其中包含BackRequested事件.问题是Frame无法返回第2页.
例如:
Page 1 -> Page 2 -> Page 3 -> BACKBUTTON -> Page 1
Run Code Online (Sandbox Code Playgroud)
我想访问第2页而不是第一页.
由于我想要一个导航栏,我决定创建一个包含内部Frame Control的Master页面.该控件被称为例如"层".
我可以使用此代码导航到第2页
Layer.Navigate(typeof(BlankPage2), this);
Run Code Online (Sandbox Code Playgroud)
"this"包含我需要从第二页访问图层的整个FirstPage.
当我想打电话给第3页时,代码就是这样的
_FirstPage.Layer.Navigate(BlankPage2),this);
Run Code Online (Sandbox Code Playgroud)
我可以使用获取FirstPage实例
protected async override void OnNavigatedTo(NavigationEventArgs e)
{FirstPage _FirstPage = e.Parameter as FirstPage;}
Run Code Online (Sandbox Code Playgroud)
我认为问题是我的FirstPage实例与第二页中的给定参数不同.
我可以尝试调用FirstPage(比如
WinForm -> (Form1) master = (Form1)Application.OpenForms["Form1"];)
Run Code Online (Sandbox Code Playgroud)
但我不知道如何打开页面......
这个标准是什么?
如何在一个页面中拥有包含不同页面的导航栏?
我很抱歉语法.由于Windows 10支持键盘输入,它会尝试纠正enter code here从英语到德语的任何工作.
*编辑
我试图创建一个测试项目,看看它是如何工作的,没有UIElement(Frame)我能够得到正确的BackStack.但不幸的是,问题没有解决!
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
try
{
int count = 0;
StringBuilder sb = new StringBuilder();
foreach (var item in this.Frame.BackStack) …Run Code Online (Sandbox Code Playgroud)