다음을 통해 공유


방법: 응용 프로그램 범위 리소스 사전 사용

이 예제에서는 응용 프로그램 범위 사용자 지정 리소스 사전을 정의하고 사용하는 방법을 보여 줍니다.

예제

Application은 공유 리소스인 Resources에 대한 응용 프로그램 범위 저장소를 노출시킵니다. 기본적으로 Resources 속성은 ResourceDictionary 형식의 인스턴스로 초기화됩니다. Resources를 사용하여 응용 프로그램 범위 속성을 가져오고 설정할 때 이 인스턴스를 사용합니다. 자세한 내용은 방법: 응용 프로그램 범위 리소스 가져오기 및 설정을 참조하십시오.

Resources를 사용하여 설정하는 리소스가 여러 개인 경우 사용자 지정 리소스 사전을 대신 사용하여 해당 리소스를 저장하고 Resources를 설정할 수 있습니다. 다음 예제에서는 XAML을 사용하여 사용자 지정 리소스 사전을 선언하는 방법을 보여 줍니다.

<ResourceDictionary 
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" >
    <SolidColorBrush x:Key="StandardSolidColorBrush" Color="Blue" />
    <LinearGradientBrush x:Key="StandardLinearGradientBrush" StartPoint="0.0,0.0" EndPoint="1.0,1.0">
        <LinearGradientBrush.GradientStops>
            <GradientStop Color="White" Offset="0" />
            <GradientStop Color="Black" Offset="1" />
        </LinearGradientBrush.GradientStops>
    </LinearGradientBrush>
</ResourceDictionary>

Resources를 사용하여 전체 리소스 사전을 맞바꾸면 응용 프로그램 범위, 테마를 지원할 수 있습니다. 이 경우 각 테마는 단일 리소스 사전에서 캡슐화합니다. 다음 예제에서는 ResourceDictionary를 설정하는 방법을 보여 줍니다.

<!--Set the Application ResourceDictionary-->
<Application.Resources>
    <ResourceDictionary Source="MyResourceDictionary.xaml" />
</Application.Resources>

다음 예제에서는 XAML의 Resources에 의해 노출된 리소스 사전에서 응용 프로그램 범위 리소스를 가져오는 방법을 보여 줍니다.

<!--Set the brush as a StaticResource from the ResourceDictionary-->
<Rectangle Name="Rect" Height="200" Width="100" Fill="{StaticResource ResourceKey=StandardSolidColorBrush}" />

다음 예제에서는 코드에서 리소스를 가져오는 방법을 보여 줍니다.

'Get a resource from the ResourceDictionary in code
Dim GradientBrush As Brush = Application.Current.FindResource("StandardLinearGradientBrush")
//Get a resource from the ResourceDictionary in code
Brush gradientBrush = (Brush)Application.Current.FindResource("StandardLinearGradientBrush");

Resources를 사용할 때 다음 두 가지 사항을 고려해야 합니다. 먼저 사전 키는 개체이므로 속성 값을 설정하고 가져올 경우 정확히 같은 개체 인스턴스를 사용해야 합니다. 문자열을 사용할 경우 키는 대/소문자를 구분해야 합니다. 두 번째로 사전 값은 개체이므로 속성 값을 가져올 경우 해당 값을 원하는 형식으로 변환해야 합니다.

참고 항목

참조

ResourceDictionary

Resources

개념

리소스 개요

병합된 리소스 사전