当前位置: 首页 > 编程语言 > C#

WPF创建兄弟窗口并关闭当前窗口分享

时间:2023-04-10 18:24:33 C#

WPF创建兄弟窗口并关闭当前窗口我需要的是我的窗口类中有这样一个事件处理程序。voidsomeEventHandler(objectsender,RoutedEventArgse){MyNewWindowmnw=newMyNewWindow();mnw.Owner=Window.GetWindow(这个);mnw.ShowDialog();这个。关闭();}Window.GetWindow(this)返回当前窗口的父窗口。我原以为当新窗口的所有者是当前窗口的父窗口时,它会等待父窗口;不是现在的。但它不是那样工作的。当前窗口等待执行一个新窗口,然后才关闭。如果出于某种原因我使用Show()而不是ShowDialog(),则窗口根本不会显示。可能我需要一些委托方法,但我不知道从哪里开始。编辑:我想我需要改进这个问题以供将来参考:新窗口应该是父窗口的对话框。如果我使用Show(),父窗口就可以访问,我不希望这样。如果我使用ShowDialog()它成为当前窗口的对话框,这意味着当前窗口在新窗口关闭之前不会关闭,我也不希望这样。关闭一个窗口会导致它拥有的所有窗口都关闭。如果你只是想让所有者窗口不可见,试试这个;voidsomeEventHandler(objectsender,RoutedEventArgse){MyNewWindowmnw=newMyNewWindow();mnw.Owner=这个;这个。隐藏();//如果使用下面的子事件则不需要mnw.ShowDialog();您可能希望在父窗口中挂钩一个事件,该事件将根据您的要求在子窗口关闭时相应地执行操作。编辑您可能能够控制对孩子的隐藏(多个父母);voidOnLoad(objectsender,RoutedEventArgse){this.Owner.Hide();}voidClosed(objectsender,RoutedEventArgse){this.Owner.Show();}如果我明白你想做什么,你想关闭当前窗口并用MyNewWindow替换它,MyNewWindow是原始窗口父窗口(可能是应用程序的主窗口)的子窗口。为此,您应该使用:mnw.Owner=this.Owner;而不是调用GetWindow,它返回当前的Window实例。GetWindow的目的是获取一个包含一些其他UIElement的窗口,例如树下的按钮。传入Window实例时,只需返回传入的内容即可。调用ShowDialog()块。这意味着,该方法仅在mnw关闭时返回,并且仅在原始窗口关闭时返回。如果将其更改为Show(),则当在原始窗口上调用Close()时,mnw将立即被Close()。因为Window.GetWindow(this)返回这个。所以你将所有者设置为这个,当你关闭它时,mnw关闭。这给了我们:MyNewWindowmnw=newMyNewWindow();mnw.Owner=this.Owner;//可能没有必要mnw.Show();这个。关闭();这段代码似乎对我有用。以上就是C#学习教程:WPF创建同级窗口并关闭当前窗口共享所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: