我想在启动时将WPF应用程序置于主屏幕的中心。我知道我必须设置myWindow.left和myWindow.top,但是我从哪里获得这些值呢?我找到了System.Windows.Forms.Screen.PrimaryScreen,它显然不是WPF。有没有一个WPF的替代方案,给我的屏幕分辨率或类似的东西?
System.Windows.Forms.Screen.PrimaryScreen
bxfogqkk1#
我更喜欢把它放在WPF代码中。在[WindowName].xaml文件中:
[WindowName].xaml
<Window x:Class=... ... WindowStartupLocation ="CenterScreen">
llmtgqce2#
没有WPF等价物。System.Windows.Forms.Screen仍然是.NET框架的一部分,可以从WPF使用。有关更多详细信息,请参阅此问题,但您可以通过使用WindowInteropHelper类来 Package 您的WPF控件,从而使用与屏幕相关的调用。
System.Windows.Forms.Screen
WindowInteropHelper
jei2mxaa3#
您在窗口WindowStartupLocation中有属性。选择CenterScreen。请参阅下图了解更多信息。
WindowStartupLocation
CenterScreen
eqfvzcg84#
xaml
<Window ... WindowStartupLocation="CenterScreen">...
fiei3ece5#
把它放到你的窗口构造函数中
WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
.NET Framework支持:4、3.5、3.0.NET Framework客户端配置文件支持:4、3.5 SP1
pgky5nke6#
您仍然可以从WPF应用程序中使用Screen类。您只需要从应用程序中引用System.Windows.Forms程序集。完成后,(下面的示例参考System.Drawing):
Rectangle workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
...工作得很好您是否考虑过将主窗口属性WindowStartupLocation设置为CenterScreen?
kpbwa7wx7#
PresentationFramework中的SystemParameters类怎么样?它有一个WorkArea属性,似乎是你正在寻找的。但是,为什么设置Window.WindowStartupLocation不起作用呢?CenterScreen是枚举值之一。你必须调整中心吗?
n8ghc7c18#
您不需要从应用程序中引用System.Windows.Forms程序集。您可以使用System.Windows.SystemParameters.WorkArea。这相当于System.Windows.Forms.Screen.PrimaryScreen.WorkingArea!
System.Windows.Forms
System.Windows.SystemParameters.WorkArea
System.Windows.Forms.Screen.PrimaryScreen.WorkingArea
5jvtdoz29#
var window = new MyWindow();
对于屏幕中心用途:
window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
对于父窗口的中心,请使用用途:
window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
9条答案
按热度按时间bxfogqkk1#
我更喜欢把它放在WPF代码中。
在
[WindowName].xaml
文件中:llmtgqce2#
没有WPF等价物。
System.Windows.Forms.Screen
仍然是.NET框架的一部分,可以从WPF使用。有关更多详细信息,请参阅此问题,但您可以通过使用
WindowInteropHelper
类来 Package 您的WPF控件,从而使用与屏幕相关的调用。jei2mxaa3#
您在窗口
WindowStartupLocation
中有属性。选择
CenterScreen
。请参阅下图了解更多信息。
eqfvzcg84#
xaml
fiei3ece5#
把它放到你的窗口构造函数中
.NET Framework支持:4、3.5、3.0
.NET Framework客户端配置文件支持:4、3.5 SP1
pgky5nke6#
您仍然可以从WPF应用程序中使用Screen类。您只需要从应用程序中引用System.Windows.Forms程序集。完成后,(下面的示例参考System.Drawing):
...工作得很好
您是否考虑过将主窗口属性WindowStartupLocation设置为CenterScreen?
kpbwa7wx7#
PresentationFramework中的SystemParameters类怎么样?它有一个WorkArea属性,似乎是你正在寻找的。
但是,为什么设置Window.WindowStartupLocation不起作用呢?CenterScreen是枚举值之一。你必须调整中心吗?
n8ghc7c18#
您不需要从应用程序中引用
System.Windows.Forms
程序集。您可以使用System.Windows.SystemParameters.WorkArea
。这相当于System.Windows.Forms.Screen.PrimaryScreen.WorkingArea
!5jvtdoz29#
对于屏幕中心用途:
对于父窗口的中心,请使用用途: