I'm trying to set all my windows to open in the center of the screen.
All my windows use style file:
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../Styles/Mystyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
So I just inserted this property to the resource dictionary:
<Style x:Key="windowStyle" TargetType="Window">
<Setter Property="WindowStartupLocation" Value="CenterScreen"/>
</Style>
But, it doesn't work. Am I missing something?
You cannot use a Style to define WindowStartupLocation, this is due to the fact that it is not a dependency property.
You can define a StaticResource in your resource dictionary which you will use in your windows:
<WindowStartupLocation x:Key="StartupLocation">CenterScreen</WindowStartupLocation>
and then use it like so:
WindowStartupLocation="{DynamicResource StartupLocation}"
You don't need to use x:Key
attribute. Your style must look like this:
<Style TargetType="{x:Type Window}">
<Setter Property="WindowStartupLocation" Value="CenterScreen"/>
</Style>
if you dont want to use implicit styles (as bniwredyc suggested) you must set style explicitly:
<Window **Style="{StaticResource windowStyle}"**>
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../Styles/Mystyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
To make every start every window at Center Screen Add this line in App.xaml
<Application.Resources>
<WindowStartupLocation x:Key="StartupLocation">CenterScreen</WindowStartupLocation>
</Application.Resources>
and add this line in Window tag
WindowStartupLocation="{StaticResource StartupLocation}"