developer tip

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

optionbox 2020. 10. 8. 07:56
반응형

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


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

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

하지만 아무것도하지 않았다


Style만 목표로 만들어 Control에서 파생 요소를하지 Control. 을 설정하지 않으면 x:Key암시 적으로로 설정 TargetType되므로 귀하의 경우에는 x:Key="{x:Type Control}".

을 지정하는 직접적인 방법이 없다 Style으로부터 파생 모든 요소 대상 TargetType의는 Style. 다른 옵션이 있습니다.

다음이있는 경우 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

반응형