Puis-je spécifier un style qui s'applique à tous les éléments? j'ai essayé
<Style TargetType="Control">
<Setter Property="Margin" Value="0,5" />
</Style>
Mais ça n'a rien fait
Le Style
que vous avez créé cible uniquement Control
et non les éléments qui dérivent de Control
. Lorsque vous ne définissez pas le x:Key
il est implicitement défini sur TargetType
, donc dans votre cas x:Key="{x:Type Control}"
.
Il n'existe aucun moyen direct de spécifier un Style
qui cible tous les éléments qui dérivent du TargetType
du Style
. Vous avez d'autres options.
Si vous disposez des Style
suivants
<Style x:Key="ControlBaseStyle" TargetType="{x:Type Control}">
<Setter Property="Margin" Value="50" />
</Style>
Vous pouvez cibler tous les Buttons
par exemple
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource ControlBaseStyle}"/>
ou utilisez le style directement sur n'importe quel élément, par ex. Button
<Button Style="{StaticResource ControlBaseStyle}" ...>
Comme Fredrik Hedblad a répondu, vous pouvez effectuer tous les éléments hérités du contrôle.
Mais vous ne pouvez pas appliquer de style pour le bloc de texte et le bouton avec le même style par exemple.
pour faire ça:
<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}"/>