source

기본 스타일에서 스타일 상속

nicesource 2023. 4. 19. 23:14
반응형

기본 스타일에서 스타일 상속

제 프로젝트에는 텍스트 상자의 커스텀 스타일이 있습니다.다음과 같이 정의됩니다.

<Style TargetType="TextBox"/>

따라서 기본적으로 모든 텍스트 상자 하위 컨트롤에 적용됩니다.

기본 스타일을 기반으로 다른 스타일을 만들어야 합니다.그러나 BasedOn 속성에서 새 스타일이 기본 스타일을 사용하도록 지정하려면 어떻게 해야 합니까?

확장할 컨트롤 유형을 사용합니다.

BasedOn="{StaticResource {x:Type TextBox}}"

완전한 예:

<Style x:Key="NamedStyle" TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
    <Setter property="Opacity" value="0.5" />
</Style>

@Aphelion은 정답을 가지고 있다.아이템이 정의되어 있는 순서를 추가하고 싶다.ResourceDictionary문제.

슬라이더의 기본 스타일을 재정의하고 다른 슬라이더 스타일을 기반으로 하려면 재정의 스타일 뒤에 "기준" 슬라이더를 선언해야 합니다.

예를 들어, 다음과 같이 합니다.

<Style x:Key="BlueSlider" TargetType="{x:Type Slider}" BasedOn="{StaticResource {x:Type Slider}}">
    <Setter Property="Background" Value="Blue"/>
</Style>

<Style TargetType="{x:Type Slider}">
    <Setter Property="Foreground" Value="Yellow"/>
</Style>

BlueSlider는, 디폴트(흰색)의 전경에 파란색 배경으로 합니다.

하지만 이렇게 하면:

<Style TargetType="{x:Type Slider}">
    <Setter Property="Foreground" Value="Yellow"/>
</Style>

<Style x:Key="BlueSlider" TargetType="{x:Type Slider}" BasedOn="{StaticResource {x:Type Slider}}">
    <Setter Property="Background" Value="Blue"/>
</Style>

BlueSlider파란색 배경과 노란색 전경이 있습니다.

언급URL : https://stackoverflow.com/questions/11581475/inherit-style-from-default-style

반응형