以编程方式使所有wpf项目窗口最顶层

时间:2015-07-11 15:37:19

标签: c# wpf topmost

可以在Visual Studio设计器中使用最独立的窗口或使用代码,但是有没有办法使用代码一次使每个窗口最顶层?

我遇到的问题是,只要让主要父窗口最顶层隐藏任何其他窗口,所以显然我需要将它们全部放在最顶层,否则我错了?

2 个答案:

答案 0 :(得分:0)

在MainWindow上设置TopMost属性。

然后在创建任何其他子窗口时,Windows / Dialog将MainWindow属性传递给show对话框方法。这会将子窗口设置为模式对话框。这意味着它将始终显示在主窗口上方。

public void ShowModelDialog()
{
  MyDialog d = new MyDialog();

  d.ShowDialog(this);
}

See here for more info

答案 1 :(得分:0)

首先在创建实例时必须指定窗口的所有者。

以下示例显示了新窗口在显示之前如何首先设置所有者。 MyWindow _MyWindow = new MyWindow() { Owner = Application.Current.MainWindow };

注意:必须先显示设置为所有者的窗口,否则您可能会收到XamlParseExceptionInvalidOperationException

其次您只需使用_MyWindow.ShowDialog()来显示该窗口。 即使在显示子窗口后将所有者窗口设置为最顶层,也可以防止所有者窗口在拥有的窗口上移动。