Application.Resources 속성

정의

스타일, 템플릿 및 브러시와 같은 애플리케이션 범위 리소스의 컬렉션을 가져옵니다.

ResourceDictionary Resources();

void Resources(ResourceDictionary value);
public ResourceDictionary Resources { get; set; }
var resourceDictionary = application.resources;
application.resources = resourceDictionary;
Public Property Resources As ResourceDictionary
<Application>
  <Application.Resources>
    oneOrMoreResourceElements
  </Application.Resources>
</Application>
 

속성 값

0개 이상의 애플리케이션 범위 리소스를 포함하는 ResourceDictionary 개체입니다.

예제

이 예제에서는 앱별 리소스를 선언하는 방법을 보여 줍니다(이 리소스는 템플릿 시작에서 제공되는 공통 변환기 클래스 instance 만듭니다). 그런 다음 ResourceDictionary 요소가 포함된 Application.MergedDictionaries 속성 요소를 추가합니다. 각 요소는 URI별 XAML 파일을 Source로 참조합니다.

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

설명

Windows 런타임 리소스 사전 모델은 WPF(Windows Presentation Foundation) 또는 Microsoft Silverlight를 사용하여 애플리케이션을 만든 경우 익숙할 수 있는 많은 XAML 리소스 개념을 지원합니다. 자세한 내용은 ResourceDictionary 및 XAML 리소스 참조를 확인하세요.

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

에 리소스를 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.ResourcesResourceDictionary는 시작 화면 이외의 페이지가 앱의 창에 로드되기 전에 구문 분석을 완료해야 했습니다. 이 때문에 Windows 8.1 대한 앱의 대상을 다시 지정할 때 타이밍에 몇 가지 차이점이 표시될 수 있습니다. 앱이 더 빠르게 로드되어야 하지만, 대상 변경의 일부로 앱 코드에 적용한 다른 변경 내용과 비교해도 이러한 개선 사항을 격리할 수 없습니다. 최적화된 리소스 로드로 인해 타이밍 변경의 증거가 표시될 수 있는 위치 중 일부는 Application 개체, 변환기 또는 기타 사용자 지정 클래스와 같은 개체에 대해 파서에서 생성자를 호출하는 경우를 포함합니다. Windows 8용으로 컴파일되었지만 Windows 8.1에서 실행하는 앱은 Windows 8 동작을 계속 사용합니다.

성능 및 XAML 리소스 팩터링에 대한 자세한 내용은 XAML 태그 최적화를 참조하세요.

적용 대상

추가 정보