Application.Resources 속성

정의

애플리케이션 범위 리소스(예: 스타일 및 브러시)의 컬렉션을 가져오거나 설정합니다.

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

속성 값

ResourceDictionary

0개 이상의 애플리케이션 범위 리소스가 들어 있는 ResourceDictionary 개체입니다.

특성

예제

이 예제에서는 애플리케이션 범위 리소스와 함께 XAML을 사용하여 일관된 시각적 모양을 만드는 방법을 보여 줍니다. 첫 번째 예제는 App.xaml 입니다. 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 프로젝트의 Application.xaml 파일)에서 애플리케이션 리소스를 설정하는 방법을 보여 줍니다.

// 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>

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

// 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 및 애플리케이션의 요소 간에 리소스를 공유할 수 있습니다. Resources 또한 다음과 같은 순서로 트래버스되는 리소스 조회 경로에 속성이 포함됩니다.

  1. 요소

  2. Windows

  3. Application.Resources

  4. 시스템

따라서 UI(사용자 인터페이스) 요소는 애플리케이션 범위 리소스에 바인딩할 수 있습니다. 또한 리소스가 변경되면 리소스 시스템은 해당 리소스에 바인딩된 요소 속성이 변경 사항을 반영하도록 자동으로 업데이트되도록 합니다.

애플리케이션 범위 리소스 애플리케이션에서 일관 된 테마를 지원 하는 간단한 방법을 제공 합니다. 태그를 사용하여 Application.Resources XAML에서 테마를 쉽게 만들 수 있습니다. 그러나 애플리케이션이 많은 테마 요소를 포함 하는 여러 테마를 지원 하기 쉬울 수 있습니다 하나를 사용 하 여 관리할 ResourceDictionary 각 테마에 대 한 인스턴스. 이러한 방식으로 Resources 속성을 적절한 ResourceDictionary테마로 설정하여 새 테마를 적용할 수 있습니다.

Resources를 사용할 때 고려해야 할 두 가지 사항이 있습니다. 첫째, 사전 는 개체이므로 속성 값을 설정하고 가져오는 경우 정확히 동일한 개체 인스턴스를 사용해야 합니다(문자열을 사용할 때 키는 대/소문자를 구분합니다). 둘째, 사전 값은 개체이므로 속성 값을 얻을 때 값을 원하는 형식으로 변환해야 합니다.

Resources 는 스레드로부터 안전하며 모든 스레드에서 사용할 수 있습니다.

적용 대상