When I attempt to set the WindowStartupLocation
property through a Setter
within a ResourceDictionary
, I get a XamlParseException
:
'Set property 'System.Windows.Setter.Property' threw an exception.' Line number 'x' and line position 'y'.
The inner exception is an ArgumentNullException
:
Value cannot be null. Parameter name: property.
My style within the resource dictionary is:
<Style TargetType="Window" x:Key="WindowStyle">
<Setter Property="SizeToContent" Value="WidthAndHeight" />
<Setter Property="ResizeMode" Value="CanMinimize" />
<Setter Property="WindowStartupLocation" Value="CenterOwner" />
</Style>
The issue is not with the use of the ResourceDictionary
, since when I remove the WindowStartupLocation
, the other two properties (SizeToContent
and ResizeMode
) are set as expected on windows which reference the style:
<Window x:Class="WpfApplication1.MyWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Style="{DynamicResource WindowStyle}">
<Window.Resources>
<ResourceDictionary Source="MyResourceDictionary.xaml" />
</Window.Resources>
</Window>
Has anyone encountered this? Is it a bug/limitation of WPF?
P.S. I know that this question is similar to Window Startup Location from resource dictionary, but not enough information was provided in the other question which subsequently remained unsolved.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…