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; }
public System.Windows.ResourceDictionary Resources { get; set; }
[<System.Windows.Markup.Ambient>]
member this.Resources : System.Windows.ResourceDictionary with get, set
member this.Resources : System.Windows.ResourceDictionary with get, set
Public Property Resources As ResourceDictionary

속성 값

ResourceDictionary

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

다음 예제에서는 코드 및 XAML에서 응용 프로그램 리소스를 설정 하는 방법을 보여 줍니다 (c # WPF 프로젝트의 app.xaml 파일 또는 Visual Basic WPF 프로젝트의 응용 프로그램 .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. 태그를 사용 하 여에서 쉽게 테마를 만들 수 있습니다 XAMLXAML Application.Resources .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.

적용 대상