Application.Resources 속성

정의

애플리케이션 범위 리소스(예: 스타일 및 브러시)의 컬렉션을 가져오거나 설정합니다.Gets or sets a collection of application-scope resources, such as styles and brushes.

public:
 property System::Windows::ResourceDictionary ^ Resources { System::Windows::ResourceDictionary ^ get(); void set(System::Windows::ResourceDictionary ^ value); };
[System.Windows.Markup.Ambient]
public System.Windows.ResourceDictionary Resources { get; set; }
member this.Resources : System.Windows.ResourceDictionary with get, set
Public Property Resources As ResourceDictionary

속성 값

0개 이상의 애플리케이션 범위 리소스가 들어 있는 ResourceDictionary 개체입니다.A ResourceDictionary object that contains zero or more application-scope resources.

구현

System.Windows.Markup.IHaveResources.Resources
특성

예제

이 예제에서는 응용 프로그램 범위 리소스와 함께 XAML을 사용 하 여 일관 된 시각적 모양을 만드는 방법을 보여 줍니다.This example illustrates how to use XAML together with application-scope resources to create a consistent visual appearance. 첫 번째 예제는 app.xaml입니다. mainwindow.xaml의 두 번째입니다.The first example is from App.xaml; the second, from MainWindow.xaml.

<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="MainWindow.xaml"
    >

  <Application.Resources>
    <SolidColorBrush x:Key="BackgroundColor" Color="Yellow"></SolidColorBrush>
  </Application.Resources>

</Application>
<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ApplicationResourcesSnippetSample_XAML" 
    Height="300" 
    Width="300" 
    Background="{StaticResource BackgroundColor}"
    >
  <Grid>
    <!-- Additional XAML. -->
  </Grid>
</Window>

다음 예제에서는 C# wpf 프로젝트의 app.xaml 파일이 나 Visual Basic wpf 프로젝트의 응용 프로그램 xaml에서 코드 및 xaml로 응용 프로그램 리소스를 설정 하는 방법을 보여 줍니다.The following example shows how to set an application resource in code and XAML (in the App.xaml file in a C# WPF project or the Application.xaml file in a Visual Basic WPF project).

// Set an application-scope resource
Application.Current.Resources["ApplicationScopeResource"] = Brushes.White;
' Set an application-scope resource
Application.Current.Resources("ApplicationScopeResource") = Brushes.White
<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SDKSample.App"
    StartupUri="MainWindow.xaml" 
    Startup="App_Startup" 
    Exit="App_Exit">
    <Application.Resources>
        <SolidColorBrush x:Key="ApplicationScopeResource" Color="White"></SolidColorBrush>
    </Application.Resources>
</Application>

다음 예제에서는 코드에서 애플리케이션 리소스를 가져오는 방법을 보여 줍니다.The following example shows how to get an application resource in code.

// Get an application-scope resource
Brush whiteBrush = (Brush)Application.Current.Resources["ApplicationScopeResource"];
' Get an application-scope resource
Dim whiteBrush As Brush = CType(Application.Current.Resources("ApplicationScopeResource"), Brush)

설명

Resources 속성을 사용 하 여 windows 및 애플리케이션의 요소 간에 리소스를 공유할 수 있습니다.The Resources property can be used to share resources across the windows and elements of an application. 또한 Resources 속성은 다음과 같은 순서로 트래버스하는 리소스 조회 경로에 포함 되어 있습니다.Additionally, the Resources property is included in the resource lookup path, which is traversed in the following order:

  1. 요소Elements

  2. WindowsWindows

  3. Application.Resources

  4. 시스템System

따라서 UI(사용자 인터페이스)user interface (UI) 요소는 애플리케이션 범위 리소스에 바인딩할 수 있습니다.Consequently, UI(사용자 인터페이스)user interface (UI) elements can bind to application-scope resources. 또한 리소스가 변경 되는 경우 리소스 시스템은 해당 리소스에 바인딩된 요소 속성이 변경 내용을 반영 하도록 자동으로 업데이트 되도록 합니다.Additionally, if resources change, the resource system ensures that element properties which are bound to those resources are automatically updated to reflect the change.

애플리케이션 범위 리소스 애플리케이션에서 일관 된 테마를 지원 하는 간단한 방법을 제공 합니다.Application-scope resources provide a simple way to support a consistent theme across your application. Application.Resources 태그를 사용 하 여 XAMLXAML에서 쉽게 테마를 만들 수 있습니다.You can easily create a theme in XAMLXAML by using the Application.Resources tag. 그러나 애플리케이션이 많은 테마 요소를 포함 하는 여러 테마를 지원 하기 쉬울 수 있습니다 하나를 사용 하 여 관리할 ResourceDictionary 각 테마에 대 한 인스턴스.However, if your application supports multiple themes, which may contain a large number of theme elements, it might be easier to manage them using one ResourceDictionary instance for each theme. 이러한 방식으로 Resources 속성을 적절 한 ResourceDictionary설정 하 여 새 테마를 적용할 수 있습니다.In this way, a new theme can be applied by setting the Resources property to the appropriate ResourceDictionary.

Resources를 사용할 때 고려해 야 할 두 가지 사항이 있습니다.There are two considerations to make when using Resources. 먼저 사전 가 개체 이므로 속성 값을 설정 하 고 가져올 때 정확히 동일한 개체 인스턴스를 사용 해야 합니다. 문자열을 사용 하는 경우 키가 대/소문자를 구분 한다는 점에 유의 하십시오.First, the dictionary key is an object, so you need to use exactly the same object instance when both setting and getting a property value (note that the key is case-sensitive when using a string). 둘째, 사전 은 개체 이므로 속성 값을 가져올 때 값을 원하는 형식으로 변환 해야 합니다.Second, the dictionary value is an object, so you will need to convert the value to the desired type when getting a property value.

Resources은 스레드로부터 안전 하며 모든 스레드에서 사용할 수 있습니다.Resources is thread safe and is available from any thread.

적용 대상