2010-10-13 6 views
6

Comment puis-je avoir un style WPF qui n'a pas de type de cible (celui qui peut être appliqué à tous les objets)?WPF Style sans type de cible?

<Style x:Key="Basic" TargetType="???"> 
    <Setter Property="FontFamily" Value="Tahoma"/> 
    <Setter Property="FontSize" Value="12"/> 
</Style> 

Je veux baser tous les autres styles sur ce style "basique".

Cordialement, MadSeb

Répondre

14

Append "Contrôle". au début de la propriété et supprimez le TargetType. Ensuite, dans les styles qui en dérivent, utilisez BasedOn avec une StaticResource pointant sur le style de base.

<Style x:Key="basicStyle"> 
    <Setter Property="Control.FontFamily" Value="Tahoma" /> 
    <Setter Property="Control.FontSize" Value="12" /> 
</Style> 

<Style TargetType="{x:Type Label}" BasedOn="{StaticResource basicStyle}"> 
    <Setter Property="HorizontalAlignment" Value="Right" /> 
    <Setter Property="VerticalAlignment" Value="Center" /> 
</Style> 
<Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource basicStyle}"> 
    <Setter Property="HorizontalAlignment" Value="Left" /> 
    <Setter Property="VerticalAlignment" Value="Center" /> 
</Style> 
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource basicStyle}"> 
    <Setter Property="HorizontalAlignment" Value="Center" /> 
    <Setter Property="VerticalAlignment" Value="Center" /> 
    <Setter Property="Margin" Value="2,4" /> 
</Style>