UWP开发---通过委托跨页面导航
-前言
做过.Net开发的都了解,当二级窗口操作主窗口的控件时通常用委托的方式。那么在UWP开发中,常常会遇到MainPage的二级Frame里面的内容去操作MainPage的导航跳转,具体看下图:

如何通过点击窗口把MainPage.Frame跳转到一个新的Page

-举例Demo

这里有三个页面
1,MainPage的Grid
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Foreground="Red" FontSize="30" Text="我是MainPage" HorizontalAlignment="Center"/>
<Border Margin="2" Grid.Row="2" BorderBrush="Black" BorderThickness="1">
<Frame Grid.Row="1" x:Name="contentFrm">
<local:内部页面1/>
</Frame>
</Border>
</Grid>
2,内部页面1的Grid
<Grid>
<ScrollViewer>
<StackPanel>
<Border x:Name="widthEg" Width="120"/>
<GridView ItemClick="GridView_ItemClick" IsItemClickEnabled="True" ItemTemplate="{StaticResource tplt}" ItemsSource="fghjglkhlhklhjl"/>
</StackPanel>
</ScrollViewer>
</Grid>
3,NewMainPage的Grid
<Grid Background="Blue">
<TextBlock Text="我占领MainFrame了!" FontSize="30" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
目前要求做的就是要实现点击内部页面1的GridViewItem,将MainPage.Frame导航到NewMainPage
-后台代码
1,内部页面1.cs
public sealed partial class 内部页面1 : Page
{
public 内部页面1()
{
this.InitializeComponent();
this.SizeChanged += 内部页面1_SizeChanged;
}
private void GridView_ItemClick(object sender, ItemClickEventArgs e)
{
MianNavigateToEvent(typeof(NewMain));
}
public delegate void NavigateHandel(Type page);
public static event NavigateHandel MianNavigateToEvent;
}
在内部页面1中定义委托和事件,并在ItemClick中执行跳转事件
2,MainPage.cs
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
内部页面1.MianNavigateToEvent += 内部页面1_MianNavigateToEvent;
}
private void 内部页面1_MianNavigateToEvent(Type page)
{
this.Frame.Navigate(page);
}
}
在MainPage的加载事件中注册委托要执行的方法
那么这个方法就是将MainPage的Frame导航到目标页面
也就是函数声明在操作页面,函数体在MainPage中(不知道这样描述对不对)
-测试效果

UWP开发---通过委托跨页面导航的更多相关文章
- UWP开发笔记——嵌套式页面的实现
绪论 UWP开发中,Page是最常用的Control之一,通常情况下,在开发的application中,每一个页面就是一个Page.有时候,为了开发整合度更高,UI表现更为一致的UI,开发者需要把UI ...
- mui框架开发aop的跨页面传值
mui开发跨平台app,其实不乏会涉及到跨页面传值,今天给大家简单介绍一种常用也是简单的传值方法 咱在这里设置一个场景,就是两个页面进入到同一页面展示不同的元素,此时需要在这两个页面各自设置一个区别的 ...
- 使用jQuery开发iOS风格的页面导航菜单
在线演示1 本地下载 申请达人,去除赞助商链接 iOS风格的操作系统和导航方式现在越来越流行,在今天的jQuery教程中,我们将介绍如何生成一个iphone风格的菜单导航. HTML代码 我们 ...
- WordPress主题开发:输出指定页面导航
实例: <ul> <li class="widget widget_nav_menu"> <?php if(is_page(array(12,14,1 ...
- Win10 UWP 开发系列:使用SplitView实现汉堡菜单及页面内导航
在Win10之前,WP平台的App主要有枢轴和全景两种导航模式,我个人更喜欢Pivot即枢轴模式,可以左右切换,非常方便.全景视图因为对设计要求比较高,自己总是做不出好的效果.对于一般的新闻阅读类Ap ...
- 小程序开发-页面导航栏navigation-bar组件
导航栏navigation-bar 页面导航条配置节点,用于指定导航栏的一些属性.只能是 page-meta 组件内的第一个节点,需要配合它一同使用. 通过这个节点可以获得类似于调用 wx.setNa ...
- 领域驱动和MVVM应用于UWP开发的一些思考
领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...
- UWP开发必备:常用数据列表控件汇总比较
今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...
- Win10/UWP开发—凭据保险箱PasswordVault
PasswordVault用户凭据保险箱其实并不算是Win10的新功能,早在Windows 8.0时代就已经存在了,本文仅仅是介绍在UWP应用中如何使用凭据保险箱进行安全存储和检索用户凭据. 那么什么 ...
随机推荐
- sqserver2008触发器
@参考博文 先上代码 先建个表用于测试 CREATE TRIGGER INSERT_forbidden on s after INSERT AS BEGIN RAISERROR(,) ROLLBACK ...
- ecplice中代码使用快捷键无法格式化,使用其他方法将代码格式化的步骤
选中需要进行格式化的代码--->右键--->source--->format,就可以将代码格式化了.
- MVC仓储执行存储过程报错“未提供该参数”
今天做的时候出现错误: "过程或函数 'sp_ProcName' 需要参数 '@uid',但未提供该参数. 可是我参数都传了,然后调试也是一样,然后对照参数列表, 后来发现执行的时候还要加入 ...
- Mina入门:mina版之HelloWorld[z]
Mina入门:mina版之HelloWorld [z] 一,前言: 在完成上篇文章<Mina入门:Java NIO框架Mina.Netty.Grizzly简介与对比>之后,我们现在可以正式 ...
- MySQL主从复制备份
前言 数据库实时备份的需求很常见,MySQL本身提供了 Replication 机制,摘译官方介绍如下: MySQL Replication 可以将一个主数据库中的数据同步到一个或多个从数据库中.并且 ...
- NABCD模型--软件工程
1.N (Need 需求) 我们通过网络调查问卷的方式,收集样本数据,并对其进行分析和总结. 1.你是否为在校学生? 7.如果用过,你觉得还应该需要添加什么功能 通过调查发现,大多数学生并不是特别了解 ...
- linux下安装php php-fpm(转载)
centos安装php php-fpm 1.下载php源码包http://www.php.net/downloads.php2 .安装phptar -xvf php-5.5.13.tar.bz2cd ...
- Ubuntu12.04添加环境变量
环境变量分为系统级和用户级. 系统级变量设置环境为/etc/environment和/etc/profile等,不要轻易修改,否则可能造成系统错误. 用户级变量设置路径为-/.bashrc和~/.pr ...
- JMeter Ant Task 生成的*.jtl打开之后request和response data是空的,怎样让其不是空的呢?
JMeter Ant Task 生成的*.jtl打开之后request和response data是空的,怎样让其不是空的呢?修改JMeter.properties,将jmeter.save.save ...
- maven使用感受
第一次接触的时候,什么都不懂,感觉好复杂. 后来系统地看了一个使用教程: 简单评价一下: 自动帮我们下载jar架包,还有就是可以执行命令自己部署到远程服务器上面去. 缺点: 学习成本.一般人不了解.第 ...
