Style.BasedOn Propriété

Définition

Obtient ou définit un style défini qui est la base du style actuel.

public:
 property System::Windows::Style ^ BasedOn { System::Windows::Style ^ get(); void set(System::Windows::Style ^ value); };
public System.Windows.Style BasedOn { get; set; }
[System.Windows.Markup.Ambient]
public System.Windows.Style BasedOn { get; set; }
member this.BasedOn : System.Windows.Style with get, set
[<System.Windows.Markup.Ambient>]
member this.BasedOn : System.Windows.Style with get, set
Public Property BasedOn As Style

Valeur de propriété

Style

Style défini qui est la base du style actuel. La valeur par défaut est null.

Attributs

Exemples

Il existe plusieurs façons dont les styles dans WPF peuvent être étendus ou hérités. Les styles peuvent être basés sur d’autres styles via cette propriété. Lorsque vous utilisez cette propriété, le nouveau style hérite des valeurs du style d’origine qui ne sont pas redéfinies explicitement dans le nouveau style. Dans l’exemple suivant, Style2 hérite de la Control.Background valeur , Yellowet ajoute une Control.Foreground valeur de Blue.


<Style x:Key="Style1">
  <Setter Property="Control.Background" Value="Yellow"/>
</Style>

<Style x:Key="Style2" BasedOn="{StaticResource Style1}">
  <Setter Property="Control.Foreground" Value="Blue"/>
</Style>

De même, les styles peuvent être basés sur le style d’un élément WPF existant, comme dans l’exemple suivant où le nouveau style est basé sur le style d’un TextBlock élément.

  <Style
x:Key="TitleText"
BasedOn="{StaticResource {x:Type TextBlock}}"
TargetType="{x:Type TextBlock}">
    <Setter Property="FontSize" Value="32pt" />
    <Setter Property="Foreground">
      <Setter.Value>
        <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
          <LinearGradientBrush.GradientStops>
            <GradientStop Offset="0.0" Color="#90C117" />
            <GradientStop Offset="1.0" Color="#5C9417" />
          </LinearGradientBrush.GradientStops>
        </LinearGradientBrush>
      </Setter.Value>
    </Setter>
    <Setter Property="RenderTransform">
      <Setter.Value>
        <TranslateTransform X="0" Y="10"/>
      </Setter.Value>
    </Setter>
  </Style>

Notes

Si vous créez un style avec une TargetType propriété et que vous la basez sur un autre style qui définit également une TargetType propriété, le type cible du style dérivé doit être identique ou dérivé du type du style de base.

Les styles définis pour des types spécifiques peuvent également être basés sur d’autres styles, comme dans l’exemple suivant.

<Style TargetType="{x:Type Button}" BasedOn="{StaticResource Style1}">
  <Setter Property="Foreground" Value="Green"/>
</Style>

Remarques

Chaque style ne prend en charge qu’une seule BasedOn valeur.

Utilisation d'attributs XAML

<object BasedOn="myStyle" .../>  

Valeurs XAML

myStyle
Style existant. En règle générale, vous utilisez les extensions de balisage et LE XAML WPF pour faire référence à un style existant.

S’applique à

Voir aussi