내보내기(0) 인쇄
모두 확장
이 문서는 수동으로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오.
번역
원본

FrameworkElement.Resources 속성

로컬로 정의된 리소스 사전을 가져오거나 설정합니다.

네임스페이스:  System.Windows
어셈블리:  PresentationFramework(PresentationFramework.dll)
XAML의 XMLNS: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[AmbientAttribute]
public ResourceDictionary Resources { get; set; }
<object>
  <object.Resources>
    oneOrMoreResourceElements
  </object.Resources>
</object>

XAML 값

oneOrMoreResourceElements

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

속성 값

형식: System.Windows.ResourceDictionary
현재 로컬로 정의된 리소스 사전(키를 사용하여 각 리소스에 액세스할 수 있음)입니다.

Extensible Application Markup Language (XAML)에서 완전히 또는 부분적으로 정의할 수 있는 리소스 사전은 대개 속성 요소로 만들어지며, 일반적으로 개별 페이지 또는 응용 프로그램의 루트 요소에 있습니다. 이 수준에 리소스 사전을 배치하면 페이지의 개별 자식 요소(응용 프로그램의 경우에는 페이지)에서 보다 쉽게 찾을 수 있습니다. 대부분의 응용 프로그램에서는 스타일을 리소스 사전 내의 개체 요소로 정의하거나 전체 스타일 리소스가 자체 포함되도록 외부 리소스로 정의하는 것이 좋습니다. 이러한 방식을 사용하면 편집해야 하는 실제 파일을 구분하여 개별 디자이너 작업을 개발자 작업과 구분할 수 있습니다.

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

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

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

여기 나와 있는 XAML 구문에는 ResourceDictionary에 대한 요소는 포함되어 있지 않습니다. 이 구문은 암시적인 컬렉션 구문의 예입니다. 컬렉션 요소를 나타내는 태그는 생략해도 됩니다. 이렇게 하는 경우 컬렉션에 항목으로 추가되는 요소가 대신 지정됩니다. 암시적 컬렉션 및 XAML에 대한 자세한 내용은 XAML 구문 정보를 참조하십시오. 병합된 사전을 사용하는 경우에는 ResourceDictionary가 요소로 명시적으로 지정됩니다. 이러한 경우 대개 해당 ResourceDictionary에 대해서는 자식 요소가 없습니다. 자세한 내용은 병합된 리소스 사전을 참조하십시오.

This example shows how to define a resource and reference it by using an attribute in Extensible Application Markup Language (XAML).

The following example defines two types of resources: a SolidColorBrush resource, and several Style resources. The SolidColorBrush resource MyBrush is used to provide the value of several properties that each take a Brush type value. The Style resources PageBackground, TitleText and Label each target a particular control type. The styles set a variety of different properties on the targeted controls, when that style resource is referenced by resource key and is used to set the Style property of several specific control elements defined in XAML.

Note that one of the properties within the setters of the Label style also references the MyBrush resource defined earlier. This is a common technique, but it is important to remember that resources are parsed and entered into a resource dictionary in the order that they are given. Resources are also requested by the order found within the dictionary if you use the StaticResource 태그 확장 to reference them from within another resource. Make sure that any resource that you reference is defined earlier within the resources collection than where that resource is then requested. If necessary, you can work around the strict creation order of resource refererences by using a DynamicResource 태그 확장 to reference the resource at runtime instead, but you should be aware that this DynamicResource technique has performance consequences. For details, see 리소스 개요.


<Page Name="root"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Page.Resources>
    <SolidColorBrush x:Key="MyBrush" Color="Gold"/>
    <Style TargetType="Border" x:Key="PageBackground">
      <Setter Property="Background" Value="Blue"/>
    </Style>
    <Style TargetType="TextBlock" x:Key="TitleText">
      <Setter Property="Background" Value="Blue"/>
      <Setter Property="DockPanel.Dock" Value="Top"/>
      <Setter Property="FontSize" Value="18"/>
      <Setter Property="Foreground" Value="#4E87D4"/>
      <Setter Property="FontFamily" Value="Trebuchet MS"/>
      <Setter Property="Margin" Value="0,40,10,10"/>
    </Style>
    <Style TargetType="TextBlock" x:Key="Label">
      <Setter Property="DockPanel.Dock" Value="Right"/>
      <Setter Property="FontSize" Value="8"/>
      <Setter Property="Foreground" Value="{StaticResource MyBrush}"/>
      <Setter Property="FontFamily" Value="Arial"/>
      <Setter Property="FontWeight" Value="Bold"/>
      <Setter Property="Margin" Value="0,3,10,0"/>
    </Style>
  </Page.Resources>
  <StackPanel>
    <Border Style="{StaticResource PageBackground}">
      <DockPanel>
        <TextBlock Style="{StaticResource TitleText}">Title</TextBlock>
        <TextBlock Style="{StaticResource Label}">Label</TextBlock>
        <TextBlock DockPanel.Dock="Top" HorizontalAlignment="Left" FontSize="36" Foreground="{StaticResource MyBrush}" Text="Text" Margin="20" />
        <Button DockPanel.Dock="Top" HorizontalAlignment="Left" Height="30" Background="{StaticResource MyBrush}" Margin="40">Button</Button>
        <Ellipse DockPanel.Dock="Top" HorizontalAlignment="Left" Width="100" Height="100" Fill="{StaticResource MyBrush}" Margin="40" />
      </DockPanel>
    </Border>
  </StackPanel>
</Page>


.NET Framework

4, 3.5, 3.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

Windows 7, Windows Vista SP1 이상, Windows XP SP3, Windows Server 2008(Server Core는 지원되지 않음), Windows Server 2008 R2(Server Core는 SP1 이상에서 지원됨), Windows Server 2003 SP2

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft