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

本文关键字:窗口 于最顶 项目 wpf 编程 方式使 | 更新日期: 2023-09-27 18:02:24

可以在Visual Studio设计器或代码中使单个窗口最顶部,但是是否有一种方法可以使每个窗口一次与代码最顶部?

我的问题是,只是使主父窗口最上面隐藏任何其他窗口,所以很明显我需要使它们都最上面,或者我错了吗?

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

设置主窗口的TopMost属性。

然后当创建任何其他子窗口/对话框时,将MainWindow属性传递给show Dialog方法。这将子窗口设置为一个模态对话框。这意味着它将始终出现在主窗口上方。

public void ShowModelDialog()
{
  MyDialog d = new MyDialog();
  d.ShowDialog(this);
}

查看更多信息

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

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

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

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