source

기본 스타일을 기반으로 스타일을 만드는 방법은 무엇입니까?

nicesource 2023. 5. 9. 22:49
반응형

기본 스타일을 기반으로 스타일을 만드는 방법은 무엇입니까?

Silverlight에서 기본 스타일을 기반으로 스타일을 만드는 방법은 무엇입니까?

예를 들어 WPF에서는 다음과 같이 만듭니다.

<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
  <Setter Property="Margin" Value="2" />
  <Setter Property="Padding" Value="2" />
</Style>

거의 비슷합니다.그냥 빼기만 하면 돼요.x:Type보다 명확한 이름을 지정합니다.

<Style TargetType="TextBox" BasedOn="{StaticResource DefaultTextBoxStyle}">

자세한 내용은 문서를 참조하십시오.PS, 예를 들어 기본 템플릿이 필요한 경우 TextBox는 일반적으로 CoreStyles.xaml에서 찾을 수 있습니다.

답변을 처음 읽었을 때 혼란스러울 경우를 대비하여 댓글로 요청한 부록;

"기본 스타일이 필요합니다. 기본 스타일은 Silverlight가 기본적으로 제공하는 애플리케이션 테마(wpf/uwp 등에는 이러한 기능이 없습니다.)에서 ToolkitStyles.xaml, SDKStyles.xaml, CoreStyles.xaml 등과 같은 파일을 만듭니다.여기서 답변에 포함된 정적 리소스 이름이 원래 답변된 연도의 실버라이트 버전을 대상으로 한 것입니다."

저는 다음을 보기를 추천합니다: https://justinmchase.com/2009/05/29/derived-styles-based-on-unnamed-default-styles/ . 당신을 위해 이렇게 될 것입니다:

<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">

Silverlight 전용:

기본 스타일을 기준으로 스타일을 작성하려면 이름이 지정된 스타일을 작성한 다음 이름이 지정된 스타일을 기준으로 기본 스타일을 작성해야 합니다(http://weblogs.asp.net/lduveau/silverlight-how-to-inherit-from-an-implicit-style)

<Style x:Key="DefaultCustomControlStyle" TargetType="local:CustomControl">
    <Setter Property="Padding" Value="2" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="local:CustomControl">
                <ContentPresenter />
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
<Style TargetType="local:CustomControl" BasedOn="{StaticResource DefaultCustomControlStyle}" />

WPF를 사용하는 경우 원래 질문의 코드를 대신 사용하는 것이 훨씬 간단합니다.

내가 올바르게 이해한 경우 OverridesDefaultStyle을 찾고 있습니다.

<Style TargetType="{x:Type TextBox}">
      <Setter Property="OverridesDefaultStyle" Value="False" />
      <Setter Property="Margin" Value="2" />
      <Setter Property="Padding" Value="2" />
</Style>

언급URL : https://stackoverflow.com/questions/13016932/how-to-create-a-style-based-on-default-style

반응형