다음을 통해 공유


FrameworkContentElement.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

속성 값

현재 로컬로 정의된 리소스입니다. 이 사전은 키로 사전 내의 리소스에 액세스하는 리소스 사전입니다.

특성

예제

다음 예제에서는 Resources 루트 요소에 FlowDocument 컬렉션을 설정합니다. FlowDocument 는 루트 요소로 이해되는 몇 FrameworkContentElement 안 되는 클래스 중 하나이며 리소스는 일반적으로 페이지 루트 또는 애플리케이션과 같은 더 높은 수준에 저장되기 때문에 일반적인 선택입니다.

<FlowDocument
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class=" SDKSample.Page2">
  <FlowDocument.Resources>
    <Style TargetType="{x:Type Paragraph}" x:Key="BluePara">
      <Setter Property="Background" Value="Blue"/>
      <Setter Property="FontSize" Value="18"/>
      <Setter Property="Foreground" Value="LightBlue"/>
      <Setter Property="FontFamily" Value="Trebuchet MS"/>
    </Style>
  </FlowDocument.Resources>
  <Paragraph Style="{StaticResource BluePara}">Lorem ipsum etc.</Paragraph>
</FlowDocument>

설명

XAML(Extensible Application Markup Language)에서 완전히 또는 부분적으로 정의할 수 있는 리소스 사전은 일반적으로 속성 요소로 생성되며 일반적으로 개별 페이지 또는 애플리케이션의 루트 요소에 있습니다. 이 수준에 리소스 사전을 배치하면 페이지의 개별 자식 요소(또는 애플리케이션의 경우 모든 페이지에서)를 쉽게 찾을 수 있습니다. 대부분의 애플리케이션 시나리오에서는 전체 스타일 리소스를 자체 포함할 수 있도록 스타일을 리소스 사전 내의 개체 요소로 정의하거나 외부 리소스로 정의하는 것이 좋습니다(이 방법은 편집해야 하는 물리적 파일을 분리하여 개발자 책임과 디자이너 책임을 구분하는 데 도움이 됩니다).

이 속성은 해당 요소 내에서 직접 선언된 리소스 사전만 반환합니다. 이는 자식 요소가 각 부모 요소에 정의된 리소스에 액세스하여 재귀적으로 위쪽으로 검색할 수 있는 실제 리소스 조회 프로세스와 다릅니다.

리소스는 컬렉션 내의 코드에서 참조할 수도 있지만 XAML에서 만든 리소스는 사전을 선언하는 요소에 의해 발생될 때까지 Loaded 확실히 액세스할 수 없습니다. 실제로 리소스는 비동기적으로 구문 분석되며 이벤트조차도 Loaded XAML 정의 리소스를 참조할 수 있다는 보장이 아닙니다. 이러한 이유로 일반적으로 런타임 코드의 일부로 또는 특성 값에 대한 스타일 또는 리소스 확장 참조와 같은 다른 XAML 기술을 통해서만 XAML 정의 리소스에 액세스해야 합니다. 코드를 통해 리소스에 액세스하는 경우 기본적으로 XAML에서 만든 DynamicResource 참조와 동일합니다.

기본 ResourceDictionary 은 코드를 사용하여 컬렉션 내에서 리소스를 추가, 제거 또는 쿼리하는 데 필요한 메서드를 지원합니다. Resources 이 속성은 요소의 리소스 컬렉션을 새 항목 또는 다른 ResourceDictionary리소스 컬렉션으로 완전히 바꾸는 시나리오를 지원하도록 설정할 수 있습니다.

표시된 XAML 구문에는 에 대한 ResourceDictionary요소가 포함되지 않습니다. 암시적 컬렉션 구문의 예입니다. 컬렉션 요소를 나타내는 태그를 생략할 수 있습니다. 컬렉션에 항목으로 추가되는 요소가 대신 지정됩니다. 암시적 컬렉션 및 XAML에 대한 자세한 내용은 XAML 구문을 참조하세요. 요소로 명시적으로 지정되는 한 가지 경우 ResourceDictionary 는 병합된 사전을 도입하는 경우이며, 이 경우 일반적으로 해당 ResourceDictionary요소에 대한 자식 요소가 없습니다. 자세한 내용은 병합된 리소스 사전을 참조하세요.

XAML 속성 요소 사용

<object>
  <object.Resources>
    oneOrMoreResourceElements
  </object.Resources>
</object>

XAML 값

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

적용 대상

추가 정보