在一台有多个显示器的PC上,假设您运行的应用程序有第二个窗口/对话框,而不是主窗口(如选项),您希望它在与MainWindow相同的屏幕/显示器上打开。如何强迫这种行为?你基本上想停止的情况下,你的MainWindow是在一个显示器上,当你提出的“选项”页面,它显示在不同的屏幕/显示器。
MainWindow
bbmckpt71#
你看过Window的WindowStartupLocation属性吗?CenterScreen将窗口放置在包含光标的屏幕的中心,这通常应该是好的。例如,如果用户单击窗口上的按钮并打开对话框,则光标仍将在按钮上,因此对话框将显示在同一窗口的中心。CenterOwner将对话框放置在指定为其所有者的Window的中心。Declare新窗口类似于这样:
Window
WindowStartupLocation
CenterScreen
CenterOwner
MyDialog d = new MyDialog { Owner = parentWindow }; d.ShowDialog();
scyqe7ek2#
我想补充一点,如果你将第二个对话框最大化,它将默认为主屏幕。作为一种变通方法,我在OnLoad方法中设置了maximize标志。
n8ghc7c13#
如果希望对话框在与父窗体相同的输出屏幕上打开,则需要设置StartPosition
StartPosition
ChildDialog cd = new ChildDialog() { StartPosition = FormStartPosition.CenterParent }; cd.ShowDialog();
3条答案
按热度按时间bbmckpt71#
你看过
Window
的WindowStartupLocation
属性吗?CenterScreen
将窗口放置在包含光标的屏幕的中心,这通常应该是好的。例如,如果用户单击窗口上的按钮并打开对话框,则光标仍将在按钮上,因此对话框将显示在同一窗口的中心。CenterOwner
将对话框放置在指定为其所有者的Window的中心。Declare新窗口类似于这样:scyqe7ek2#
我想补充一点,如果你将第二个对话框最大化,它将默认为主屏幕。作为一种变通方法,我在OnLoad方法中设置了maximize标志。
n8ghc7c13#
如果希望对话框在与父窗体相同的输出屏幕上打开,则需要设置
StartPosition