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中(不知道这样描述对不对)
[测试效果]
【实际效果】
转载于:https://www.cnblogs.com/Big-Head/p/10376577.html
UWP开发---通过委托跨页面导航相关推荐
- uniapp开发小程序,引入腾讯兔小巢插件,兔小巢页面导航头部样式错乱问题
uniapp开发小程序,引入腾讯兔小巢插件,导航头部样式错乱问题 uniapp开发小程序,引入腾讯兔小巢插件,导航头部样式错乱问题 uniapp开发微信小程序,所有页面头部导航都是自定义的,引入腾讯兔 ...
- Dokuwiki辅助功能开发-命名空间下页面导航
Dokuwiki辅助功能开发-命名空间下页面导航 <php> $pinfo = pageinfo();//获取pageinfo函数返回的当前页面信息数组 $mdir = dirname($ ...
- 22-CMS前端页面查询开发-Api调用-跨域解决
跨域问题解决 测试 上边的代理 ,结果 报错如下 : No 'Access-Control-Allow-Origin' header is present on the requested resou ...
- 《微信小程序开发》 页面导航最强详解 | 如何对小程序页面进行跳转?
<微信小程序开发> 页面导航最强详解 | 如何对小程序页面进行跳转? 文章目录 <微信小程序开发> 页面导航最强详解 | 如何对小程序页面进行跳转? 一.微信小程序导航 二.命 ...
- 领域驱动和MVVM应用于UWP开发的一些思考
领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...
- UWP 开发初阶 Chapter 6 - 简单介绍如何使用 C# 改变 XAML 控件的属性
上篇回顾 上篇介绍了通过 this.Frame.navigate(typeof(PageName)); 实现的全局页面导航,以及通过在 XAML 中建立 Frame ,并通过 frameName.na ...
- html5 多页面共享数据库,可以跨页面使用HTML5 Web SQL数据库吗?(Can HTML5 Web SQL databases be used across pages?)...
可以跨页面使用HTML5 Web SQL数据库吗?(Can HTML5 Web SQL databases be used across pages?) 这可能是一个非常简单的问题,请原谅我的无知,但 ...
- WinPhone学习笔记(一)——页面导航与页面相关
最近学一下Windows Phone(接下来简称"WinPhone")的开发,在很久很久前稍探究一下WinPhone中对一些传感器的开发,那么现在就从头来学学WinPhone的开发 ...
- MVVM跨页面数据传输
MVVM跨页面数据传输 一.MVVM是什么? MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点 低耦合.视图(View)可以独立于Model变化和修改,一个 ...
最新文章
- Android自定义AlertDialog
- hi3798mv300是什么手机_华为海思电视芯片hi3798mv300 硬件参数如何?
- javascript学习系列(13):数组中的concat方法
- views.py视图函
- JAVA抽象类和接口类的区别
- 信息检索的过去 当前 未来-------浅层分析报告
- Linux——共享文件夹
- pilz pnoz s4说明书_如何使用Pilz的安全继电器PNOZ S4?
- python图片处理,实现图片内容的中英文翻译 详细案例
- 2018年12月份冬季PAT甲级考试总结
- 2022年对于李一男是关键的一年,这也将决定他的社会地位
- 简单线性回归截距假设检验_统计推断——假设检验——简单线性回归分析
- 两个互质整数的线性组合问题
- netbackup备份mysql_NetBackup备份Oracle数据库失败-nbu
- 多维联合正态分布代码matlab(以二维为例)
- java刷机教程,小米Mix2s刷机教程
- 泰国地图高清中文版 电子版​
- 清华大学宪法与行政法学学术硕士考研经验分享
- 【ACL2020】香侬科技提出基于span prediction的共指消解模型
- 关于网站图片变形的问题
热门文章
- Java集合系列---Collection源码解析及整体框架结构
- linux如何增加一个进程,linux – 如何增加新生成进程的CPU频率
- 探索高效jQuery的奥秘
- 索尼申请“Pregius S”商标 或用于CMOS图像传感器
- java B2B2C 仿淘宝电子商城系统-eureka 基础
- 用iso镜像配置本地yum源
- 韩企全球首造72层3D NAND芯片 下半年或量产
- Oracle 查看表空间大小及其扩展
- JavaScript和C#通用gb2312和utf8编码解码函数简单实现
- GridView控件RowDataBound事件中获取列字段的几种方法(转)