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 используются для ссылки на существующий стиль.