如何使对话框(视图)在与主窗口相同的监视器上打开



在具有多个显示器的PC中,假设您运行的应用程序具有除主窗口(例如选项)之外的第二个窗口/对话框,您希望它在与MainWindow相同的屏幕/监视器中打开。如何强制这种行为?

您基本上希望停止您的MainWindow在一台显示器上的情况,当您调出"选项"页面时,它会显示在不同的屏幕/显示器上。

您是否查看过WindowWindowStartupLocation属性?

CenterScreen将窗口放在包含光标的屏幕中央,这通常应该没问题。例如,如果用户单击窗口上的按钮并打开一个对话框,则光标仍将位于该按钮上,因此该对话框将显示在同一窗口的中心。

CenterOwner将对话框放在指定为其所有者的窗口的中心。声明类似于以下内容的新窗口:

MyDialog d = new MyDialog { Owner = parentWindow };
d.ShowDialog();
我想

补充一个事实,即如果您最大化地启动第二个对话框,它将默认为主屏幕。 作为解决方法,我在 OnLoad 方法中设置了最大化标志。

如果您希望对话框在与父窗体相同的输出屏幕上打开,则需要设置StartPosition

ChildDialog cd = new ChildDialog() { StartPosition = FormStartPosition.CenterParent };
cd.ShowDialog();

最新更新