ModernUI + MVVM 导航

在主窗体中注册消息

  1. Messenger.Default.Register<string>(this, pageuri =>  
  2.     {  
  3.         var frame = GetDescendantFromName(this, "ContentFrame") as ModernFrame;  
  4.             
  5.         // Set the frame source, which initiates navigation  
  6.         if (frame != null)  
  7.         {  
  8.             frame.Source = new Uri(p.Page, UriKind.Relative);  
  9.         }  
  10.     });

主窗体中获取FRAME的方法

  1. private   static FrameworkElement GetDescendantFromName(DependencyObject parent,  string name)  
  2.     {  
  3.         var count = VisualTreeHelper.GetChildrenCount(parent);  
  4.    
  5.          if  (count < 1)  
  6.         {  
  7.              return   null ;  
  8.         }  
  9.    
  10.          for  (var i = 0; i < count; i++)  
  11.         {  
  12.             var frameworkElement = VisualTreeHelper.GetChild(parent, i)  as FrameworkElement;  
  13.              if  (frameworkElement !=  null )  
  14.             {  
  15.                  if  (frameworkElement.Name == name)  
  16.                 {  
  17.                      return  frameworkElement;  
  18.                 }  
  19.    
  20.                 frameworkElement = GetDescendantFromName(frameworkElement, name);  
  21.                  if  (frameworkElement !=  null )  
  22.                 {  
  23.                      return  frameworkElement;  
  24.                 }  
  25.             }  
  26.         }  
  27.    
  28.          return   null ;  
  29.     }  
  30. }  

在页面中的导航请求

Messenger.Default.Send(pageuri);

----------------------------------------------------------------------------------------------------------

按钮导航

 

转载于:https://www.cnblogs.com/zhangxiaoshuai/p/5582800.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值