C# 以编程方式将所有wpf项目窗口设置为最顶层

C# 以编程方式将所有wpf项目窗口设置为最顶层,c#,wpf,topmost,C#,Wpf,Topmost,可以在VisualStudio设计器中或使用代码使单个窗口位于最顶端,但是有没有一种方法可以使用代码使每个窗口同时位于最顶端 我遇到的问题是,只将主父窗口设置为最顶部会隐藏任何其他窗口,因此显然我需要将它们全部设置为最顶部,还是我错了?在主窗口上设置最顶部属性 然后,在创建任何其他子窗口/对话框时,将MainWindow属性传递到show Dialog方法中。这会将子窗口设置为模式对话框。这意味着它将始终显示在主窗口上方 public void ShowModelDialog() { MyD

可以在VisualStudio设计器中或使用代码使单个窗口位于最顶端,但是有没有一种方法可以使用代码使每个窗口同时位于最顶端


我遇到的问题是,只将主父窗口设置为最顶部会隐藏任何其他窗口,因此显然我需要将它们全部设置为最顶部,还是我错了?

在主窗口上设置最顶部属性

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

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

  d.ShowDialog(this);
}

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

下面的示例显示了如何在显示新窗口之前先设置所有者。
MyWindow\u MyWindow=newmywindow(){Owner=Application.Current.MainWindow}

注意:设置为所有者的窗口必须已经显示,否则您可能会得到
XamlParseException
invalidooperationexception

其次您只需要使用
\u MyWindow.ShowDialog()
来显示窗口。
这将防止所有者窗口在所属窗口的顶部移动,即使它在显示子窗口后被设置为最顶部。

好的,谢谢,我会尝试一下,如果它对我的情况有效与否,我会回复您。好的,您指定的代码无效,但理论是正确的。创建实例时,我必须指定窗口的所有者。然后
ShowDialog()
。无论如何谢谢你!