source

모든 컨트롤을 대상으로 하는 방법(WPF 스타일)

manycodes 2023. 5. 16. 22:45
반응형

모든 컨트롤을 대상으로 하는 방법(WPF 스타일)

모든 요소에 적용되는 스타일을 지정할 수 있습니까?나는 노력했다.

<Style TargetType="Control">
    <Setter Property="Margin" Value="0,5" />
</Style>

하지만 아무 것도 하지 않았습니다.

Style당신이 만든 것은 단지 목표일 뿐입니다.Control에서 파생되는 요소가 아닙니다.Control설정하지 않은 경우x:Key암묵적으로 설정되어 있습니다.TargetType그래서 당신의 경우에는x:Key="{x:Type Control}".

다음을 지정할 수 있는 직접적인 방법은 없습니다.Style그것은 에서 파생되는 모든 요소를 대상으로 합니다.TargetTypeStyle다른 옵션이 있습니다.

다음이 있는 경우Style

<Style x:Key="ControlBaseStyle" TargetType="{x:Type Control}">
    <Setter Property="Margin" Value="50" />
</Style>

모두 대상으로 지정할 수 있습니다.Buttons예를들면

<Style TargetType="{x:Type Button}" BasedOn="{StaticResource ControlBaseStyle}"/>

또는 모든 요소에 스타일을 직접 사용합니다. 예).Button

<Button Style="{StaticResource ControlBaseStyle}" ...>

Fredrik Hedblad가 대답했듯이 제어에서 상속된 모든 요소에 영향을 줄 수 있습니다.

그러나 예를 들어 같은 스타일의 텍스트 블록 및 단추에는 스타일을 적용할 수 없습니다.

실행 방법:

    <Style x:Key="DefaultStyle" TargetType="{x:Type FrameworkElement}">
        <Setter Property="Control.Margin" Value="50"/>
    </Style>
    <Style TargetType="TextBlock" BasedOn="{StaticResource DefaultStyle}"/>
    <Style TargetType="Button" BasedOn="{StaticResource DefaultStyle}"/>

언급URL : https://stackoverflow.com/questions/4131034/how-to-target-all-controls-wpf-styles

반응형