Style.BasedOn Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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 redefinirán explícitamente en el nuevo estilo. En el ejemplo siguiente, Style2
hereda el Control.Background valor de Yellow
y 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>
Del mismo modo, 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 XAML de WPF para hacer referencia a un estilo existente.