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 .