내용 보기

작성자

관리자 (IP : 172.17.0.1)

날짜

2020-07-10 01:47

제목

[WPF] 리소스 파일 분리 하기(클래스 라이브러리에서 스타일 파일 따로 분리)


WPF에서 클래스 라이브러리 형식의 프로젝트는 App.xaml파일을 가질 수 없다.
실제로 App.xaml파일 생성 후 해당 App.xaml파일 속성에서 빌드 작업을 ApplicationDefinition으로 설정 후 빌드하면 클래스 라이브러리 형식은 ApplicationDefinition을 설정할 수 없다고 빌드 오류난다.

이럴때

<UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Styles.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
</UserControl.Resources>
cs

위 와 같이 리소스 파일을 분리 시킬 수 있다.

Styles.xaml

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" 
    mc:Ignorable="d">
        <!-- Resources scoped at the Application level should be defined here. -->
        <Style x:Key="sToggleButton_ExpanderHeader" TargetType="{x:Type ToggleButton}">
            <Setter Property="Template">
                <Setter.Value>
중간 생략...
    </Style>
</ResourceDictionary>
cs


출처1

출처2