Style.BasedOn プロパティ

定義

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

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

プロパティ値

Style

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

属性

のスタイルは、いくつかの方法で WPFWPF 拡張または継承できます。There are several ways that styles in WPFWPF 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>

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

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

  <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 、派生スタイルのターゲット型はと同じであるか、または基本スタイルの型から派生している必要があります。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"/>
</Style>

注釈

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

XAML 属性の使用方法XAML Attribute Usage

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

XAML 値XAML Values

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

適用対象

こちらもご覧ください