【前言】

  做过.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开发---通过委托跨页面导航相关推荐

  1. uniapp开发小程序,引入腾讯兔小巢插件,兔小巢页面导航头部样式错乱问题

    uniapp开发小程序,引入腾讯兔小巢插件,导航头部样式错乱问题 uniapp开发小程序,引入腾讯兔小巢插件,导航头部样式错乱问题 uniapp开发微信小程序,所有页面头部导航都是自定义的,引入腾讯兔 ...

  2. Dokuwiki辅助功能开发-命名空间下页面导航

    Dokuwiki辅助功能开发-命名空间下页面导航 <php> $pinfo = pageinfo();//获取pageinfo函数返回的当前页面信息数组 $mdir = dirname($ ...

  3. 22-CMS前端页面查询开发-Api调用-跨域解决

    跨域问题解决 测试 上边的代理 ,结果 报错如下 : No 'Access-Control-Allow-Origin' header is present on the requested resou ...

  4. 《微信小程序开发》 页面导航最强详解 | 如何对小程序页面进行跳转?

    <微信小程序开发> 页面导航最强详解 | 如何对小程序页面进行跳转? 文章目录 <微信小程序开发> 页面导航最强详解 | 如何对小程序页面进行跳转? 一.微信小程序导航 二.命 ...

  5. 领域驱动和MVVM应用于UWP开发的一些思考

    领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...

  6. UWP 开发初阶 Chapter 6 - 简单介绍如何使用 C# 改变 XAML 控件的属性

    上篇回顾 上篇介绍了通过 this.Frame.navigate(typeof(PageName)); 实现的全局页面导航,以及通过在 XAML 中建立 Frame ,并通过 frameName.na ...

  7. 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?) 这可能是一个非常简单的问题,请原谅我的无知,但 ...

  8. WinPhone学习笔记(一)——页面导航与页面相关

    最近学一下Windows Phone(接下来简称"WinPhone")的开发,在很久很久前稍探究一下WinPhone中对一些传感器的开发,那么现在就从头来学学WinPhone的开发 ...

  9. MVVM跨页面数据传输

    MVVM跨页面数据传输 一.MVVM是什么? MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点 低耦合.视图(View)可以独立于Model变化和修改,一个 ...

最新文章

  1. Android自定义AlertDialog
  2. hi3798mv300是什么手机_华为海思电视芯片hi3798mv300 硬件参数如何?
  3. javascript学习系列(13):数组中的concat方法
  4. views.py视图函
  5. JAVA抽象类和接口类的区别
  6. 信息检索的过去 当前 未来-------浅层分析报告
  7. Linux——共享文件夹
  8. pilz pnoz s4说明书_如何使用Pilz的安全继电器PNOZ S4?
  9. python图片处理,实现图片内容的中英文翻译 详细案例
  10. 2018年12月份冬季PAT甲级考试总结
  11. 2022年对于李一男是关键的一年,这也将决定他的社会地位
  12. 简单线性回归截距假设检验_统计推断——假设检验——简单线性回归分析
  13. 两个互质整数的线性组合问题
  14. netbackup备份mysql_NetBackup备份Oracle数据库失败-nbu
  15. 多维联合正态分布代码matlab(以二维为例)
  16. java刷机教程,小米Mix2s刷机教程
  17. 泰国地图高清中文版 电子版​
  18. 清华大学宪法与行政法学学术硕士考研经验分享
  19. 【ACL2020】香侬科技提出基于span prediction的共指消解模型
  20. 关于网站图片变形的问题

热门文章

  1. Java集合系列---Collection源码解析及整体框架结构
  2. linux如何增加一个进程,linux – 如何增加新生成进程的CPU频率
  3. 探索高效jQuery的奥秘
  4. 索尼申请“Pregius S”商标 或用于CMOS图像传感器
  5. java B2B2C 仿淘宝电子商城系统-eureka 基础
  6. 用iso镜像配置本地yum源
  7. 韩企全球首造72层3D NAND芯片 下半年或量产
  8. Oracle 查看表空间大小及其扩展
  9. JavaScript和C#通用gb2312和utf8编码解码函数简单实现
  10. GridView控件RowDataBound事件中获取列字段的几种方法(转)