¿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
Respuestas:
El Styleque creó es solo la orientación Controly no los elementos que se derivan de Control. Cuando no configura el x:Key, está implícitamente configurado como TargetType, por lo que en su casox:Key="{x:Type Control}" .
No hay ninguna forma directa de especificar un Styleque se dirija a todos los elementos que se derivan del TargetTypede Style. Tienes otras opciones.
Si tiene lo siguiente Style
<Style x:Key="ControlBaseStyle" TargetType="{x:Type Control}">
<Setter Property="Margin" Value="50" />
</Style>
Puede apuntar a todos, Buttonspor ejemplo
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource ControlBaseStyle}"/>
o use el estilo directamente en cualquier elemento, p. ej. Button
<Button Style="{StaticResource ControlBaseStyle}" ...>
Como respondió Fredrik Hedblad, puede afectar todos los elementos heredados del control.
Pero no puede aplicar estilo para bloque de texto 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}"/>
FrameworkElementno se estaba aplicando a todos mis controles, ¡esto respondió a esa pregunta!