Style.BasedOn Propriedade

Definição

Obtém ou define um estilo definido que é a base do estilo atual.

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

Style

Um estilo definido que é a base do estilo atual. O valor padrão é null.

Atributos

Exemplos

Há várias maneiras pelas quais os estilos no WPF podem ser estendidos ou herdados. Os estilos podem ser baseados em outros estilos por meio dessa propriedade. Quando você usa essa propriedade, o novo estilo herdará os valores do estilo original que não são redefinidos explicitamente no novo estilo. No exemplo a seguir, Style2 herda o Control.Background valor de Yellow, e adiciona um 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>

Da mesma forma, os estilos podem ser baseados no estilo de um elemento WPF existente, como no exemplo a seguir em que o novo estilo é baseado no estilo de um 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>

Observação

Se você criar um estilo com uma TargetType propriedade e baseá-lo em outro estilo que também define uma TargetType propriedade, o tipo de destino do estilo derivado deve ser o mesmo que ou ser derivado do tipo do estilo base.

Estilos definidos para tipos específicos também podem ser baseados em outros estilos, como no exemplo a seguir.

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

Comentários

Cada estilo só dá suporte a um BasedOn valor.

Uso do Atributo XAML

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

Valores XAML

Mystyle
Um estilo existente. Normalmente, você usa as Extensões de Marcação e o XAML do WPF para se referir a um estilo existente.

Aplica-se a

Confira também