Style.BasedOn Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Recebe 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 de Propriedade
Um estilo definido que é a base do estilo atual. O valor predefinido é null.
- Atributos
Exemplos
Existem várias formas de os estilos em WPF serem estendidos ou herdados. Os estilos podem basear-se noutros estilos através desta propriedade. Ao usar esta propriedade, o novo estilo herdará os valores do estilo original que não são explicitamente redefinidos no novo estilo. No exemplo seguinte, herda o Style2 valor de Control.Background, e soma um Yellow valor de 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>
De forma semelhante, os estilos podem basear-se no estilo de um elemento de WPF existente, como no exemplo seguinte, onde o novo estilo se baseia no estilo de um elemento 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>
Note
Se criares um estilo com uma TargetType propriedade e o baseares noutro estilo que também define uma TargetType propriedade, o tipo-alvo do estilo derivado deve ser o mesmo ou ser derivado do tipo do estilo base.
Estilos definidos para tipos específicos também podem basear-se noutros estilos, como no exemplo seguinte.
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource Style1}">
<Setter Property="Foreground" Value="Green"/>
</Style>
Observações
Cada estilo só suporta um BasedOn valor.
Uso de atributos XAML
<object BasedOn="myStyle" .../>
Valores XAML
myStyle Um estilo já existente. Normalmente, usas as extensões Markup e WPF XAML para te referires a um estilo existente.