Style.BasedOn 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定做為目前樣式之基礎的已定義樣式。
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 Attribute Usage
<object BasedOn="myStyle" .../>
XAML 值
myStyle 現有的樣式。 一般而言,您會使用 標記延伸模組和 WPF XAML 來參考現有的樣式。