如何在屏幕上中心的WPF应用程序?
我想要在主屏幕上启动中心我的WPF应用程序。 我知道我必须设置myWindow.Left和myWindow.Top,但我在哪里可以得到值?
我发现System.Windows.Forms.Screen.PrimaryScreen
,显然不是WPF。 有没有一个WPF的select,给我的屏幕分辨率或类似的东西?
把它放在你的窗口构造函数中
WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
.NET FrameworkSupported in:4,3.5,3.0
.NET Framework Client ProfileSupported in:4,3.5 SP1
XAML
WindowStartupLocation="CenterScreen"
您仍然可以使用WPF应用程序中的Screen类。 您只需要从您的应用程序中引用System.Windows.Forms程序集。 一旦你完成了,(和下面的例子引用System.Drawing):
Rectangle workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
…工作得很好。
您是否考虑将您的主窗口属性WindowStartupLocation设置为CenterScreen?
那么PresentationFramework中的SystemParameters类呢? 它有一个WorkArea属性,这似乎是你在找什么。
但是,为什么不设置Window.WindowStartupLocation的工作? CenterScreen是枚举值之一。 你必须调整中心?
您不需要从应用程序中引用System.Windows.Forms
程序集。 相反,你可以使用System.Windows.SystemParameters.WorkArea
。 这相当于System.Windows.Forms.Screen.PrimaryScreen.WorkingArea
!
没有WPF等价物。 System.Windows.Forms.Screen
仍然是.NET框架的一部分,可以从WPF使用。
有关更多详细信息,请参阅此问题 ,但是可以使用WindowInteropHelper
类来包装WPF控件,从而使用与屏幕相关的调用。
var window = new MyWindow();
对于屏幕的中心使用:
window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
为父窗口的中心使用:
window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;