문제

특정 XAML 템플릿을 적용하여 WPF 애플리케이션이 스크라이나 할 수 있기를 원하며 시각적/논리 트리에 있지 않은 동적 컨트롤 또는 컨트롤에 대해서도 응용 프로그램을 넓게 변경합니다.

이 유형의 기능을 달성하기 위해 무엇을 사용할 수 있습니까? 이 특정 작업을 수행 할 수있는 방법을 보여주는 좋은 리소스 나 튜토리얼이 있습니까?

도움이 되었습니까?

해결책

기본 접근 방식은 응용 프로그램을 통해 모든 자원을 사용하고 런타임시 리소스를 동적으로 교체하는 것입니다.

보다 http://www.nablasoft.com/alkampfer/index.php/2008/05/22/simple-skinnable-and-theme-management-in-wpf-user-interface/ 기본 접근법

다른 팁

자원을 대체하는 것이 효과가 있지만 "구조적 스키닝"이 더 강력하다는 것을 알았습니다! CodeProject에서 그것에 대해 자세히 알아보십시오 ...

http://www.codeproject.com/kb/wpf/podder1.aspx

템플릿 키를 사용하지 않고 모든 컨트롤에 일반 템플릿을 적용하는 방법을 찾았습니다. 해결책은 컨트롤 유형을 스타일 키로 사용하는 것입니다.

예시:

 <Application.Resources>
    <Style x:Key="{x:Type Button}" TargetType="{x:Type Button}">
        <Setter Property="Button.Background" Value="CornflowerBlue"/>
        <Setter Property="Button.Template">
            <Setter.Value>
                <ControlTemplate x:Name="MyTemplate">
                    ...
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Application.Resources>

여기서 스타일 키는 x : key = "{x : type button}"이므로 스타일 속성을 정적 또는 동적 리소스로 선언하지 않고 유형의 모든 컨트롤에 스타일이 적용됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top