Style.BasedOn Свойство

Определение

Возвращает или задает определенный стиль, являющийся основой текущего стиля.

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

Значение свойства

Определенный стиль, являющийся основой текущего стиля. Значение по умолчанию — null.

Атрибуты

Примеры

Существует несколько способов расширения или наследования стилей в WPF. Это свойство может основываться на других стилях. При использовании этого свойства новый стиль наследует значения исходного стиля, которые явно не переопределяются в новом стиле. В следующем примере Style2 наследует Control.Background значение Yellowи добавляет Control.Foreground значение 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>

Аналогичным образом стили могут основываться на стиле существующего элемента WPF, как показано в следующем примере, где новый стиль основан на стиле TextBlock элемента.

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

Примечание

Если вы создаете стиль с TargetType помощью свойства и создаете его на основе другого стиля, который также определяет TargetType свойство, целевой тип производного стиля должен быть таким же, как или быть производным от типа базового стиля.

Стили, определенные для определенных типов, также могут основываться на других стилях, как показано в следующем примере.

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

Комментарии

Каждый стиль поддерживает только одно BasedOn значение.

Использование атрибута XAML

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

Значения XAML

myStyle Существующий стиль. Как правило, для ссылки на существующий стиль используются расширения разметки и XAML WPF .

Применяется к