Style.BasedOn Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia zdefiniowany styl, który jest podstawą bieżącego stylu.
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
Wartość właściwości
Zdefiniowany styl, który jest podstawą bieżącego stylu. Wartość domyślna to null
.
- Atrybuty
Przykłady
Istnieje kilka sposobów rozszerzania lub dziedziczenia stylów w WPF. Style mogą być oparte na innych stylach za pomocą tej właściwości. W przypadku używania tej właściwości nowy styl dziedziczy wartości oryginalnego stylu, które nie są jawnie ponownie definiowane w nowym stylu. W poniższym przykładzie Style2
dziedziczy Control.Background wartość Yellow
elementu i dodaje Control.Foreground wartość .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>
Podobnie style mogą być oparte na stylu istniejącego elementu WPF, jak w poniższym przykładzie, w którym nowy styl jest oparty na stylu TextBlock elementu.
<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>
Uwaga
Jeśli tworzysz styl z właściwością TargetType i opierasz go na innym stylu, który definiuje również TargetType właściwość, typ docelowy stylu pochodnego musi być taki sam jak lub pochodzić z typu stylu podstawowego.
Style zdefiniowane dla określonych typów mogą być również oparte na innych stylach, jak w poniższym przykładzie.
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource Style1}">
<Setter Property="Foreground" Value="Green"/>
</Style>
Uwagi
Każdy styl obsługuje tylko jedną BasedOn wartość.
Użycie atrybutu języka XAML
<object BasedOn="myStyle" .../>
Wartości XAML
myStyle
Istniejący styl. Zazwyczaj używasz rozszerzeń znaczników i języka WPF XAML do odwoływania się do istniejącego stylu.