style modern metro for example wpf user-interface styles

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}" ...>