在主窗体中注册消息
- Messenger.Default.Register<string>(this, pageuri =>
- {
- var frame = GetDescendantFromName(this, "ContentFrame") as ModernFrame;
- // Set the frame source, which initiates navigation
- if (frame != null)
- {
- frame.Source = new Uri(p.Page, UriKind.Relative);
- }
- });
主窗体中获取FRAME的方法
- private static FrameworkElement GetDescendantFromName(DependencyObject parent, string name)
- {
- var count = VisualTreeHelper.GetChildrenCount(parent);
- if (count < 1)
- {
- return null ;
- }
- for (var i = 0; i < count; i++)
- {
- var frameworkElement = VisualTreeHelper.GetChild(parent, i) as FrameworkElement;
- if (frameworkElement != null )
- {
- if (frameworkElement.Name == name)
- {
- return frameworkElement;
- }
- frameworkElement = GetDescendantFromName(frameworkElement, name);
- if (frameworkElement != null )
- {
- return frameworkElement;
- }
- }
- }
- return null ;
- }
- }
在页面中的导航请求
Messenger.Default.Send(pageuri);
----------------------------------------------------------------------------------------------------------
按钮导航