Resources 속성

Application.Resources Property

스타일, 템플릿 및 브러시와 같은 응용 프로그램 범위 리소스의 컬렉션을 가져옵니다.

구문


public ResourceDictionary Resources { get; set; }


<Application>
  <Application.Resources>
    oneOrMoreResourceElements
  </Application.Resources>
</Application>
 

XAML Values

oneOrMoreResourceElements

각각 리소스를 만들고 정의하는 하나 이상의 개체 요소입니다. 각 ResourceDictionary 내에 있는 각 리소스 속성 요소는 x:Key에 대해 고유한 값을 가지고 있어야 합니다. 이 값은 ResourceDictionary에서 값을 검색할 때 고유 키 역할을 합니다.

속성 값

형식: ResourceDictionary

0개 이상의 응용 프로그램 범위 리소스를 포함하는 ResourceDictionary 개체입니다.

설명

Windows 런타임의 리소스 사전 모델은 WPF(Windows Presentation Foundation) 또는 Microsoft Silverlight를 사용하여 응용 프로그램을 만든 경우 친숙할 수 있는 여러 XAML 리소스 개념을 지원합니다. 자세한 내용은 ResourceDictionary 및 XAML 리소스 참조를 참조하십시오.

Application.Resources 속성 요소를 채우는 ResourceDictionary에 정의된 리소스는 앱의 모든 페이지에서 검색할 수 있습니다. 많은 앱 페이지가 모두 동일한 리소스를 사용하는 경우 유용합니다. 예를 들어 앱 UI의 색 구성표로 사용할 SolidColorBrush 리소스가 있으며 해당 색이 페이지의 대부분에 사용될 경우 Application.Resources로 사용되는 Application.Resources에서 SolidColorBrush를 선언하는 것이 좋습니다.

Application.Resources에 리소스를 추가하는 경우 기존 ResourceDictionary.MergedResources 앞 또는 뒤에 추가합니다. XAML 규칙에서는 속성 요소 태그의 양쪽에 콘텐츠를 배치할 수 없습니다. 자세한 내용은 기본 XAML 구문 가이드를 참조하십시오.

Windows 8.1에서 리소스 로드 최적화

Windows 8.1부터는 앱 모델 및 Windows 런타임 XAML 파서에서 사용하는 리소스 로드 최적화가 있습니다. Windows 8의 경우 XAML 파서는 app.xaml에서 리소스를 로드하고 각 리소스를 시작에 포함되는 개체로 생성합니다. 이는 큰 사전이 있는 경우 그다지 효율적이지 않았습니다. 또한 세 개의 테마 모두에 필요한 항목은 해당 리소스에 포함되었으며 세 테마 중 두 개는 활성화되지 않습니다. Windows 8.1부터 XAML 파서는 특별히 요청된 경우에만 리소스를 만듭니다. 요청은 다른 리소스나 앱 또는 페이지 XAML에서 로드 시 발생할 수 있습니다. 이 파서 동작은 시작 시 앱 수준 사전을 읽는 데 걸리는 시간을 최소화하며, 대부분의 경우 첫 번째 앱 페이지가 더 빨리 로드될 수 있도록 합니다. 현재 비활성 상태인 다른 테마에 필요한 리소스는 사용자가 해당 테마를 활성 테마로 선택한 경우에만 로드됩니다. 이때 요청에 ThemeResource 태그 확장이 사용된 모든 리소스는 새로 활성화된 테마에 따라 다시 계산됩니다.

Windows 8 동작

Windows 8에는 위에서 설명한 최적화가 없었습니다. Application.Resources에 대한 ResourceDictionary는 시작 화면 이외의 페이지가 앱의 Window에 로드되기 전에 구문 분석을 마쳐야 합니다. 이로 인해 Windows 8.1용으로 앱 대상을 변경할 시기에 약간의 차이가 있을 수 있습니다. 앱이 더 빠르게 로드되지만 대상 재지정의 일환으로 앱 코드에서 변경한 다른 내용과 이 개선 사항을 분리할 수 없을 수도 있습니다. 최적화된 리소스 로드로 인해 타이밍이 변경되는 모습은 Application 개체, 컨버터 또는 기타 사용자 지정 클래스 등의 개체에서 파서가 생성자를 호출할 때 나타납니다. Windows 8에 대해 컴파일되었지만 Windows 8.1에서 실행하는 앱이 계속해서 Windows 8 동작을 사용합니다.

성능 및 XAML 리소스 팩터링에 대한 자세한 내용은 XAML 로드 최적화를 참조하십시오.

예제

이 예제에서는 앱별 리소스를 선언하는 방법을 보여 줍니다. 시작 템플릿에서 가져오는 일반적인 변환기 클래스 인스턴스를 만듭니다. 각각 URI를 기준으로 XAML 파일을 Source로 참조하는 ResourceDictionary 요소가 안에 있는 Application.MergedDictionaries 속성 요소를 추가합니다.


<Application.Resources>
    <ResourceDictionary>
      <common:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/> 
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="rd1.xaml" />
        <ResourceDictionary Source="rd2.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Application.Resources>

요구 사항

지원되는 최소 클라이언트

Windows 8

지원되는 최소 서버

Windows Server 2012

Namespace

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadata

Windows.winmd

참고 항목

Application
x:Key
ResourceDictionary 및 XAML 리소스 참조
StaticResource
응용 프로그램 리소스 및 지역화 샘플

 

 

표시:
© 2017 Microsoft