Style.BasedOn Właściwość

Definicja

Pobiera lub ustawia zdefiniowany styl, który jest podstawą bieżącego stylu.

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

Wartość właściwości

Zdefiniowany styl, który jest podstawą bieżącego stylu. Wartość domyślna to null.

Atrybuty

Przykłady

Istnieje kilka sposobów rozszerzania lub dziedziczenia stylów w WPF. Style mogą być oparte na innych stylach za pomocą tej właściwości. W przypadku używania tej właściwości nowy styl dziedziczy wartości oryginalnego stylu, które nie są jawnie ponownie definiowane w nowym stylu. W poniższym przykładzie Style2 dziedziczy Control.Background wartość Yellowelementu i dodaje Control.Foreground wartość .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>

Podobnie style mogą być oparte na stylu istniejącego elementu WPF, jak w poniższym przykładzie, w którym nowy styl jest oparty na stylu TextBlock elementu.

  <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>

Uwaga

Jeśli tworzysz styl z właściwością TargetType i opierasz go na innym stylu, który definiuje również TargetType właściwość, typ docelowy stylu pochodnego musi być taki sam jak lub pochodzić z typu stylu podstawowego.

Style zdefiniowane dla określonych typów mogą być również oparte na innych stylach, jak w poniższym przykładzie.

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

Uwagi

Każdy styl obsługuje tylko jedną BasedOn wartość.

Użycie atrybutu języka XAML

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

Wartości XAML

myStyle
Istniejący styl. Zazwyczaj używasz rozszerzeń znaczników i języka WPF XAML do odwoływania się do istniejącego stylu.

Dotyczy

Zobacz też