gpt4 book ai didi

c# - WPF 创建同级窗口并关闭当前窗口

转载 作者:行者123 更新时间:2023-11-30 14:16:56 25 4
gpt4 key购买 nike

我需要的是我的窗口类中的这样一个事件处理程序。

void someEventHandler(object sender, RoutedEventArgs e)
{
MyNewWindow mnw = new MyNewWindow();
mnw.Owner = Window.GetWindow(this);
mnw.ShowDialog();
this.Close();
}

Window.GetWindow(this) 返回当前窗口的父窗口。

我本来想当新窗口的所有者是当前窗口的父窗口时,它会等待父窗口;而不是当前的。但它不是那样工作的。当前窗口等待新的执行并仅在之后关闭。

如果出于某种原因我使用 Show() 而不是 ShowDialog(),则窗口根本不会显示。

可能我需要一些委托(delegate)方法,但我不确定从哪里开始。

编辑:我想我需要改进这个问题以备将来引用:新窗口应该是父窗口的对话框。如果我使用 Show() 父窗口变得可访问,我不希望这样。如果我使用 ShowDialog(),它会成为当前窗口的对话框,这意味着当前窗口在新窗口关闭之前不会关闭,我也不希望这样。

最佳答案

关闭窗口会导致它拥有的所有窗口 to be closed .

如果你只是想让所有者窗口不可见,试试这个;

void someEventHandler(object sender, RoutedEventArgs e)
{
MyNewWindow mnw = new MyNewWindow();
mnw.Owner = this;
this.Hide(); // not required if using the child events below
mnw.ShowDialog();
}

您可能希望在父窗口中连接一些事件,当您根据您的要求关闭子窗口时,这些事件会相应地起作用。

编辑

您也许可以控制对 child 隐藏(多个 parent );

void OnLoad(object sender, RoutedEventArgs e)
{
this.Owner.Hide();
}
void Closed(object sender, RoutedEventArgs e)
{
this.Owner.Show();
}

关于c# - WPF 创建同级窗口并关闭当前窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6672187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com