从子页面框架到主页面框架的 UWP 导航
UWP navigation from child page frame to main page frame
我正在开发一个 UWP 应用程序,我遇到了返回根框架导航的问题,我有主页,我有框架,我将所有页面导航到这个框架中,,dashboard.xaml,orders.xaml...等,我的 orders.xaml 我有另一个框架...在那个框架中,当我在任何这些页面,我需要导航到我的订单页面......所以我面临着让主页框架将我的 Orders.xaml 导航到那个页面的问题,请帮助我。提前致谢
应该这样做:
Frame.Navigate(typeof(orders));
有多种方法可以实现您想要的。例如,您可以在 Mainpage
中定义一个 public static 属性 来公开 Frame
.
public sealed partial class MainPage : Page
{
public static Frame MainPageFrame;
public MainPage()
{
this.InitializeComponent();
//Frame1 is the name of the Frame in XAML
MainPageFrame = Frame1;
}
...
}
然后在订单详情页面,使用这个属性进行导航。
MainPage.MainPageFrame?.Navigate(typeof(Orders));
或者您可以利用 VisualTreeHelper 并获取父级 Frame
即 "Frame1" 如:
//this.Frame gets the Frame holds the order details page (i.e "Frame2")
FindParent<Frame>(this.Frame)?.Navigate(typeof(Orders));
这里的FindParent
方法是一个使用VisualTreeHelper.GetParent
方法的帮助方法,如下所示:
public static T FindParent<T>(DependencyObject dependencyObject) where T : DependencyObject
{
var parentObject = VisualTreeHelper.GetParent(dependencyObject);
if (parentObject == null) return null;
var parent = parentObject as T;
return parent ?? FindParent<T>(parentObject);
}
我正在开发一个 UWP 应用程序,我遇到了返回根框架导航的问题,我有主页,我有框架,我将所有页面导航到这个框架中,,dashboard.xaml,orders.xaml...等,我的 orders.xaml 我有另一个框架...在那个框架中,当我在任何这些页面,我需要导航到我的订单页面......所以我面临着让主页框架将我的 Orders.xaml 导航到那个页面的问题,请帮助我。提前致谢
应该这样做:
Frame.Navigate(typeof(orders));
有多种方法可以实现您想要的。例如,您可以在 Mainpage
中定义一个 public static 属性 来公开 Frame
.
public sealed partial class MainPage : Page
{
public static Frame MainPageFrame;
public MainPage()
{
this.InitializeComponent();
//Frame1 is the name of the Frame in XAML
MainPageFrame = Frame1;
}
...
}
然后在订单详情页面,使用这个属性进行导航。
MainPage.MainPageFrame?.Navigate(typeof(Orders));
或者您可以利用 VisualTreeHelper 并获取父级 Frame
即 "Frame1" 如:
//this.Frame gets the Frame holds the order details page (i.e "Frame2")
FindParent<Frame>(this.Frame)?.Navigate(typeof(Orders));
这里的FindParent
方法是一个使用VisualTreeHelper.GetParent
方法的帮助方法,如下所示:
public static T FindParent<T>(DependencyObject dependencyObject) where T : DependencyObject
{
var parentObject = VisualTreeHelper.GetParent(dependencyObject);
if (parentObject == null) return null;
var parent = parentObject as T;
return parent ?? FindParent<T>(parentObject);
}