xaml
<Window ... WindowStartupLocation="CenterScreen">...
Put this in your window constructor
WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
.NET FrameworkSupported in: 4, 3.5, 3.0
.NET Framework Client ProfileSupported in: 4, 3.5 SP1
You can still use the Screen class from a WPF app. You just need to reference the System.Windows.Forms assembly from your application. Once you've done that, (and referenced System.Drawing for the example below):
Rectangle workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
...works just fine.
Have you considered setting your main window property WindowStartupLocation to CenterScreen?
What about the SystemParameters class in PresentationFramework? It has a WorkArea property that seems to be what you are looking for.
But, why won't setting the Window.WindowStartupLocation work? CenterScreen is one of the enum values. Do you have to tweak the centering?
You don't need to reference the System.Windows.Forms
assembly from your application. Instead, you can use System.Windows.SystemParameters.WorkArea
. This is equivalent to the System.Windows.Forms.Screen.PrimaryScreen.WorkingArea
!
var window = new MyWindow();
for center of the screen use:
window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
for center of the parent window use:
window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
I prefer to put it in the WPF code.
In [WindowName].xaml
file:
<Window x:Class=...
...
WindowStartupLocation ="CenterScreen">
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With