加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – WPF创建兄弟窗口并关闭当前窗口

发布时间:2020-12-16 01:45:29 所属栏目:百科 来源:网络整理
导读:我需要的是我的窗口类中的这样一个事件处理程序. void someEventHandler(object sender,RoutedEventArgs e){ MyNewWindow mnw = new MyNewWindow(); mnw.Owner = Window.GetWindow(this); mnw.ShowDialog(); this.Close();} Window.GetWindow(this)返回当前
我需要的是我的窗口类中的这样一个事件处理程序.

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

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

我曾想过当新窗口的所有者是当前窗口的父窗口时,它会等待父窗口;而不是现在的.但它并没有这样的方式.当前窗口等待执行新的并且仅在之后关闭.

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

可能我需要一些委托方法,但我不知道从哪里开始.

编辑:我想我需要改进以后的参考问题:
新窗口应该是父窗口的对话框.如果我使用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();
}

您可能希望在父窗口中挂接某个事件,该窗口根据您的要求关闭子窗口时会相应地执行操作.

编辑

你也许可以控制孩子的隐藏(多个父母);

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读