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; }
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.

특성

예제

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. 다음 예제에서 Style2YellowControl.Background 값을 상속 하 고 BlueControl.Foreground 값을 추가 합니다.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>

설명

각 스타일은 하나의 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.

적용 대상

추가 정보