Style.BasedOn Propiedad

Definición

Obtiene o establece un estilo definido que es la base del estilo actual.

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

Valor de propiedad

Style

Estilo definido que es la base del estilo actual. El valor predeterminado es null.

Atributos

Ejemplos

Hay varias maneras de ampliar o heredar estilos en WPF. Los estilos se pueden basar en otros estilos a través de esta propiedad. Al usar esta propiedad, el nuevo estilo heredará los valores del estilo original que no se vuelven a definir explícitamente en el nuevo estilo. En el ejemplo siguiente, Style2 hereda el Control.Background valor de Yellowy agrega un Control.Foreground valor 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 forma similar, los estilos se pueden basar en el estilo de un elemento WPF existente, como en el ejemplo siguiente donde el nuevo estilo se basa en el estilo de un TextBlock elemento.

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

Nota

Si crea un estilo con una TargetType propiedad y lo basa en otro estilo que también define una TargetType propiedad, el tipo de destino del estilo derivado debe ser el mismo que o derivarse del tipo del estilo base.

Los estilos definidos para tipos específicos también se pueden basar en otros estilos, como en el ejemplo siguiente.

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

Comentarios

Cada estilo solo admite un BasedOn valor.

Uso de atributos XAML

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

Valores XAML

myStyle
Un estilo existente. Normalmente, usas las extensiones de marcado y EL XAML de WPF para hacer referencia a un estilo existente.

Se aplica a

Consulte también