Cuando intento para establecer la propiedad a través de un WindowStartupLocation
Setter
dentro de un ResourceDictionary
, consigo un XamlParseException
:Configuración WindowStartupLocation de ResourceDictionary tiros XamlParseException
'Establecer la propiedad 'System.Windows.Setter.Property' produjo una excepción . ' El número de línea 'x' y la posición de línea 'y'.
la excepción interna es un ArgumentNullException
:
valor no puede ser nulo. Nombre del parámetro: propiedad.
Mi estilo dentro del diccionario de recursos es:
<Style TargetType="Window" x:Key="WindowStyle">
<Setter Property="SizeToContent" Value="WidthAndHeight" />
<Setter Property="ResizeMode" Value="CanMinimize" />
<Setter Property="WindowStartupLocation" Value="CenterOwner" />
</Style>
El problema no es con el uso de la ResourceDictionary
, ya que cuando se quita la WindowStartupLocation
, se establecen las otras dos propiedades (SizeToContent
y ResizeMode
) como se esperaba en las ventanas que hacen referencia al estilo:
<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>
¿Alguien ha encontrado esto? ¿Es un error/limitación de WPF?
P.S. Sé que esta pregunta es similar a Window Startup Location from resource dictionary, pero no se proporcionó suficiente información en la otra pregunta que posteriormente quedó sin resolver.
Entonces se le permite establecer un CLR (no-dependencia) Propiedad directamente de XAML (usando ' 'sintaxis), pero no de un diccionario de recursos, ¿correcto? –
User3810621
No del todo. Puede establecer la propiedad directamente en XAML, pero aún puede usar un diccionario de recursos, pero no el Estilo. Es decir, los siguientes trabajos: CenterOwner WindowStartupLocation> ResourceDictionary> –
Gracias, muy útil! Lamentablemente, no puedo usar 'StaticResource' ya que necesito hacer referencia al' ResourceDictionary' desde 'Window' (estoy desarrollando un complemento de Office que no me da una clase' Application' de WPF). Pero su sugerencia sería genial para centralizar el estilo predeterminado en las aplicaciones de Windows. – User3810621