wpf frame中的page页面 如何关闭其父窗

qq_27080737 2016-11-25 09:16:21
这个父窗体下面有三个子窗体, 1 2 3 ,首次运行 父窗体中的frame加载的是page1,
当page1页面操作完成后,点击继续,现在父窗体加载的又是page2 . 现在问题来了 :当我在page2点击完成后,调用以下代码
Window win = (Window)this.Parent;
win.Close();
这时我的page页面报错:因为他找不到上一级的父页面。这是为什么呢
...全文
980 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr_ALei 2016-12-22
  • 打赏
  • 举报
回复
楼主,五楼呢?五楼哪去了?再说你怎么解决的啊,能分享一下吗
qq_27080737 2016-11-28
  • 打赏
  • 举报
回复
谢谢,按照五楼的方法做出来了,谢谢 D56233577 的耐心回帖
D56233577 2016-11-28
  • 打赏
  • 举报
回复
引用 9 楼 qq_27080737 的回复:
意思是我在关闭的时候调用这个吗?
是的,目的就是拿到对象的引用。 var window = GetParent<Window>(page2); window.Close();
qq_27080737 2016-11-28
  • 打赏
  • 举报
回复
你可以测试5#给你的代码,通过树找是可以的,各有优缺点。[/quote] 现在需要快速的解决问题,等解决了以后再谈优缺点吧,毕竟问题都没解决 一切都是空谈啊。
qq_27080737 2016-11-28
  • 打赏
  • 举报
回复
调用:var window = GetParent<Window>(page2);[/quote] 意思是我在关闭的时候调用这个吗?
D56233577 2016-11-28
  • 打赏
  • 举报
回复
引用 7 楼 qq_27080737 的回复:
具体怎么做,能否贴个代码给我看看,大兄弟。。。 感激不尽
你可以测试5#给你的代码,通过树找是可以的,各有优缺点。
qq_27080737 2016-11-28
  • 打赏
  • 举报
回复
引用 6 楼 D56233577 的回复:
引用 4 楼 qq_27080737 的回复:
你可以随便写个静态成员引用你的Window对象,想关闭时就调用它。
然而我测试可以[/quote] 具体怎么做,能否贴个代码给我看看,大兄弟。。。 感激不尽
D56233577 2016-11-28
  • 打赏
  • 举报
回复
引用 4 楼 qq_27080737 的回复:
你可以随便写个静态成员引用你的Window对象,想关闭时就调用它。
[/quote] 然而我测试可以
xinweilee 2016-11-28
  • 打赏
  • 举报
回复
获取方法: public static T GetAncestor<T> ( DependencyObject reference ) where T : DependencyObject { DependencyObject parent = VisualTreeHelper.GetParent ( reference ); while ( !( parent is T ) && parent != null ) { parent = VisualTreeHelper.GetParent ( parent ); } if ( parent != null ) return ( T ) parent; else return null; } 调用:var window = GetParent<Window>(page2);
qq_27080737 2016-11-28
  • 打赏
  • 举报
回复
并不行啊。
引用 3 楼 D56233577 的回复:
你可以随便写个静态成员引用你的Window对象,想关闭时就调用它。
D56233577 2016-11-26
  • 打赏
  • 举报
回复
你可以随便写个静态成员引用你的Window对象,想关闭时就调用它。
qq_27080737 2016-11-26
  • 打赏
  • 举报
回复
谁能详细的给说说嘛,WPF小白 好难过
xinweilee 2016-11-25
  • 打赏
  • 举报
回复
parent是逻辑父节点,是可能为空的,看看msdn的介绍 你可以用visualtreehelper一级级获取page的父节点,直到找到window

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧