可以在Visual Studio设计器中使用最独立的窗口或使用代码,但是有没有办法使用代码一次使每个窗口最顶层?
我遇到的问题是,只要让主要父窗口最顶层隐藏任何其他窗口,所以显然我需要将它们全部放在最顶层,否则我错了?
答案 0 :(得分:0)
在MainWindow上设置TopMost属性。
然后在创建任何其他子窗口时,Windows / Dialog将MainWindow属性传递给show对话框方法。这会将子窗口设置为模式对话框。这意味着它将始终显示在主窗口上方。
public void ShowModelDialog()
{
MyDialog d = new MyDialog();
d.ShowDialog(this);
}
答案 1 :(得分:0)
首先在创建实例时必须指定窗口的所有者。
以下示例显示了新窗口在显示之前如何首先设置所有者。
MyWindow _MyWindow = new MyWindow() { Owner = Application.Current.MainWindow };
注意:必须先显示设置为所有者的窗口,否则您可能会收到XamlParseException
或InvalidOperationException
。
其次您只需使用_MyWindow.ShowDialog()
来显示该窗口。
即使在显示子窗口后将所有者窗口设置为最顶层,也可以防止所有者窗口在拥有的窗口上移动。