我需要的是我的窗口类中的这样一个事件处理程序.
void someEventHandler(object sender, RoutedEventArgs e)
{
MyNewWindow mnw = new MyNewWindow();
mnw.Owner = Window.GetWindow(this);
mnw.ShowDialog();
this.Close();
}
Run Code Online (Sandbox Code Playgroud)
Window.GetWindow(this)返回当前窗口的父窗口.
我曾想过当新窗口的所有者是当前窗口的父窗口时,它会等待父窗口; 而不是现在的.但它并没有这样的方式.当前窗口等待执行新的并且仅在之后关闭.
如果我出于某种原因使用Show()而不是ShowDialog(),则根本不显示窗口.
可能我需要一些委托方法,但我不知道从哪里开始.
编辑:我想我需要改进以后引用的问题:新窗口应该是父窗口的对话框.如果我使用Show(),父窗口变得可访问,我不希望这样.如果我使用ShowDialog()它会成为当前窗口的对话框,这意味着在新窗口关闭之前当前窗口不会关闭,我也不想这样做.
关闭窗口会导致其拥有的所有窗口都关闭.
如果您只是希望所有者窗口不可见,请尝试这样做;
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();
}
Run Code Online (Sandbox Code Playgroud)
您可能希望在父窗口中挂接某个事件,该窗口根据您的要求关闭子窗口时会相应地执行操作.
编辑
你也许可以控制孩子的隐藏(多个父母);
void OnLoad(object sender, RoutedEventArgs e)
{
this.Owner.Hide();
}
void Closed(object sender, RoutedEventArgs e)
{
this.Owner.Show();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7720 次 |
| 最近记录: |