modern - wpf styles templates
Cómo orientar todos los controles(Estilos WPF) (2)
¿Puedo especificar un estilo que se aplique a todos los elementos? Lo intenté
<Style TargetType="Control">
<Setter Property="Margin" Value="0,5" />
</Style>
Pero no hizo nada
Como respondió Fredrik Hedblad, puedes aplicar todos los elementos heredados del control.
Pero no se puede aplicar estilo para textblock y botón con el mismo estilo, por ejemplo.
Para hacer eso:
<Style x:Key="DefaultStyle" TargetType="{x:Type FrameworkElement}">
<Setter Property="Control.Margin" Value="50"/>
</Style>
<Style TargetType="TextBlock" BasedOn="{StaticResource DefaultStyle}"/>
<Style TargetType="Button" BasedOn="{StaticResource DefaultStyle}"/>
El Style
que creaste solo está dirigido a Control
y no a elementos que se derivan del Control
. Cuando no establece la x:Key
se establece implícitamente en TargetType
, por lo que en su caso x:Key="{x:Type Control}"
.
No hay ninguna forma directa de especificar un Style
que se dirija a todos los elementos que se derivan del TargetType
del Style
. Tienes algunas otras opciones.
Si tienes el siguiente Style
<Style x:Key="ControlBaseStyle" TargetType="{x:Type Control}">
<Setter Property="Margin" Value="50" />
</Style>
Puede apuntar a todos los Buttons
por ejemplo
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource ControlBaseStyle}"/>
o usa el estilo directamente en cualquier elemento, por ejemplo, Button
<Button Style="{StaticResource ControlBaseStyle}" ...>