Style.BasedOn プロパティ


現在のスタイルの基になる定義済みのスタイルを取得または設定します。Gets or sets a defined style that is the basis of the current style.

 property System::Windows::Style ^ BasedOn { System::Windows::Style ^ get(); void set(System::Windows::Style ^ value); };
public System.Windows.Style BasedOn { get; set; }
public System.Windows.Style BasedOn { get; set; }
member this.BasedOn : System.Windows.Style with get, set
member this.BasedOn : System.Windows.Style with get, set
Public Property BasedOn As Style



現在のスタイルの基になる定義済みのスタイル。A defined style that is the basis of the current style. 既定値は null です。The default value is null.


WPF でのスタイルの拡張や継承は、いくつかの方法で行うことができます。There are several ways that styles in WPF can be extended or inherited. スタイルは、このプロパティを使用して他のスタイルに基づくことができます。Styles can be based on other styles through this property. このプロパティを使用すると、新しいスタイルでは、新しいスタイルで明示的に再定義されていない元のスタイルの値が継承されます。When you use this property, the new style will inherit the values of the original style that are not explicitly redefined in the new style. 次の例では、は Style2 Control.Background の値を継承し、 Yellow 値をに追加し Control.Foreground Blue ます。In the following example, Style2 inherits the Control.Background value of Yellow, and adds a Control.Foreground value of Blue.

<Style x:Key="Style1">
  <Setter Property="Control.Background" Value="Yellow"/>

<Style x:Key="Style2" BasedOn="{StaticResource Style1}">
  <Setter Property="Control.Foreground" Value="Blue"/>

同様に、次の例に示すように、スタイルは既存の WPF 要素のスタイルに基づいて作成できます。この例では、新しいスタイルは要素のスタイルに基づいてい TextBlock ます。Similarly, styles can be based on the style of an existing WPF element, as in the following example where the new style is based on the style of a TextBlock element.

BasedOn="{StaticResource {x:Type TextBlock}}"
TargetType="{x:Type TextBlock}">
    <Setter Property="FontSize" Value="32pt" />
    <Setter Property="Foreground">
        <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
            <GradientStop Offset="0.0" Color="#90C117" />
            <GradientStop Offset="1.0" Color="#5C9417" />
    <Setter Property="RenderTransform">
        <TranslateTransform X="0" Y="10"/>


プロパティを使用してスタイルを作成 TargetType し、プロパティを定義する別のスタイルに基づいて作成する場合 TargetType 、派生スタイルのターゲット型はと同じであるか、または基本スタイルの型から派生している必要があります。If you create a style with a TargetType property and base it on another style that also defines a TargetType property, the target type of the derived style must be the same as or be derived from the type of the base style.

次の例に示すように、特定の型に対して定義されているスタイルは、他のスタイルに基づくこともできます。Styles defined for specific types can also be based on other styles, as in the following example.

<Style TargetType="{x:Type Button}" BasedOn="{StaticResource Style1}">
  <Setter Property="Foreground" Value="Green"/>


各スタイルでサポートされる値は1つだけ BasedOn です。Each style only supports one BasedOn value.

XAML 属性の使用方法XAML Attribute Usage

<object BasedOn="myStyle" .../>  


既存のスタイル。An existing style. 通常、既存のスタイルを参照するには、 マークアップ拡張機能と WPF XAML を使用します。Typically, you use the Markup Extensions and WPF XAML to refer to an existing style.