Style.BasedOn Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает определенный стиль, который является основой текущего стиля.
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
Значение свойства
Определенный стиль, который является основой текущего стиля. Значение по умолчанию — null.
- Атрибуты
Примеры
Существует несколько способов расширения или унаследования стилей в WPF. Стили можно использовать на основе других стилей с помощью этого свойства. При использовании этого свойства новый стиль наследует значения исходного стиля, которые явно не переопределяются в новом стиле. В следующем примере Style2 наследует Control.Background значение Yellowи добавляет 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>
Аналогичным образом стили могут основываться на стиле существующего элемента WPF, как в следующем примере, где новый стиль основан на стиле 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>
Замечание
Если вы создаете стиль со свойством TargetType и основываете его на другом стиле, который также определяет TargetType свойство, целевой тип производного стиля должен совпадать с типом базового стиля.
Стили, определенные для определенных типов, также могут быть основаны на других стилях, как показано в следующем примере.
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource Style1}">
<Setter Property="Foreground" Value="Green"/>
</Style>
Комментарии
Каждый стиль поддерживает только одно BasedOn значение.
Использование атрибута XAML
<object BasedOn="myStyle" .../>
Значения XAML
myStyle Существующий стиль. Как правило, вы используете расширения разметки и XAML WPF для ссылки на существующий стиль.