FrameworkElement.Resources 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
로컬로 정의된 리소스 사전을 가져옵니다. XAML에서는 XAML 암시적 컬렉션 구문을 통해 리소스 항목을 속성 요소의 frameworkElement.Resources 자식 개체 요소로 설정할 수 있습니다.
ResourceDictionary Resources();
void Resources(ResourceDictionary value);
public ResourceDictionary Resources { get; set; }
var resourceDictionary = frameworkElement.resources;
frameworkElement.resources = resourceDictionary;
Public Property Resources As ResourceDictionary
<frameworkElement>
<frameworkElement.Resources>
oneOrMoreResourceElements
</frameworkElement.Resources>
</frameworkElement>
속성 값
키로 각 리소스에 액세스할 수 있는 현재 로컬로 정의된 리소스 사전입니다.
예제
이 예제에서는 하나의 항목이 포함된 간단한 리소스 사전의 XAML 정의를 보여 DataTemplate줍니다.
<Grid.Resources>
<DataTemplate x:Key="CBTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Width="50" Height="50"
Source="{Binding Photo}" Stretch="Fill"/>
<TextBlock Grid.Column="1" Text="{Binding Title}"
Margin="10" HorizontalAlignment="Left" FontSize="20"/>
</Grid>
</DataTemplate>
</Grid.Resources>
<GridView ItemTemplate="{StaticResource CBTemplate}" .../>
XAML 리소스 정의 및 리소스 참조를 사용하는 것이 Resources 속성을 사용하는 일반적인 방법입니다. 대부분의 경우 XAML만으로 일반적인 리소스 시나리오를 처리할 수 있습니다. 그러나 이 속성을 사용하여 컬렉션 API에 액세스하여 시나리오에 필요한 경우 런타임 코드를 사용하여 리소스를 검색할 수도 있습니다. 이 예제에서는 Resources 속성에 대한 코드 액세스를 보여 줍니다. 이 예제에서 Resources 속성 참조는 인라인이며 문자열 키를 RainbowBrush사용하여 항목을 검색 ResourceDictionary 하는 인덱서 사용량 바로 뒤에 옵니다. 명시적 캐스트를 확인합니다. 항목 ResourceDictionary 의 반환 값은 항상 형식화되지 않은 개체입니다.
void MainPage::SetBGByResource(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
Button^ b = safe_cast<Windows::UI::Xaml::Controls::Button^>(sender);
b->Background = safe_cast<Windows::UI::Xaml::Media::Brush^>(this->Resources->Lookup("RainbowBrush"));
}
void SetBGByResource(object sender, RoutedEventArgs e)
{
Button b = sender as Button;
b.Background = (Brush)this.Resources["RainbowBrush"];
}
Private Sub SetBGByResource(sender As Object, e As RoutedEventArgs)
Dim b As Button = TryCast(sender, Button)
b.Background = DirectCast(Me.Resources("RainbowBrush"), Brush)
End Sub
<Page.Resources>
...
<LinearGradientBrush x:Key="RainbowBrush">
<GradientStop Color="Red" Offset="0.05" />
<GradientStop Color="Orange" Offset="0.23" />
<GradientStop Color="Yellow" Offset="0.41" />
<GradientStop Color="Green" Offset="0.59" />
<GradientStop Color="Blue" Offset="0.77" />
<GradientStop Color="Purple" Offset="0.95" />
</LinearGradientBrush>
</Page.Resources>
설명
Resources 컬렉션에 있는 항목의 주요 목적은 {StaticResource} 태그 확장 참조(또는 유사한 {ThemeResource} 태그 확장 참조)를 사용하여 XAML의 다른 부분에서 항목을 참조하는 것입니다. 런타임에 Resources 컬렉션에 액세스하려는 경우 관련 템플릿의 API를 사용하여 항목을 ResourceDictionary쿼리, 추가 또는 제거할 수 있습니다.
자세한 정보 및 예제는 ResourceDictionary 및 XAML 리소스 참조를 참조하세요.
A ResourceDictionary 는 C# 또는 Microsoft Visual Basic을 사용하여 프로그래밍하는 경우 Visual C++ 구성 요소 확장(C++/CX) 또는 IDictionary<TKey, TValue> 템플릿으로 프로그래밍하는 경우> 템플릿을 기반으로 IMap<K,V 하는 키 모음입니다. 코드에서 사전 및 해당 항목으로 작업하는 데 사용하는 API는 기본 템플릿을 반영하므로 앱에 사용하는 언어를 반영합니다.
Application 에는 앱에서 Resources 둘 이상의 페이지에서 액세스할 수 있어야 하는 리소스를 저장하는 데 사용할 수 있는 속성도 있습니다. 사용자 지정 컨트롤에 대한 리소스는 템플릿 지정 컨트롤의 기본 프로젝트 템플릿에 의해 만들어진 별도의 XAML 파일에 저장할 수도 있습니다.
XAML Resources 컬렉션에 표시되는 항목이 반드시 런타임에 사용할 수 있는 XAML 정의 리소스 전체가 아닙니다. 다른 리소스는 속성이 에 미치는 영향으로 인해 런타임에 MergedDictionaries ResourceDictionary사용할 수 있습니다. 이 값은 MergedDictionaries 기본 XAML 컨트롤 템플릿의 리소스와 같이 시스템에서 정의한 리소스와 같은 다른 사전을 도입할 수 있습니다. 런타임 테마별 리소스도 비슷한 ThemeDictionaries 속성에서 사용할 수 있습니다. 런타임에 컬렉션에 Resources 액세스하고 Item 인덱서 또는 Lookup 메서드를 사용하여 특정 키를 쿼리하는 경우 이러한 리소스에 액세스하고 검색할 수 있습니다. 자세한 내용은 ResourceDictionary 및 XAML 리소스 참조를 확인하세요. Application.Resources 또한 앱의 모든 XAML 참조에 사용할 수 있는 리소스를 제공하므로 지정된 FrameworkElement.Resources 사전에서 리소스를 확장할 수 있습니다.
적용 대상
추가 정보
피드백
다음에 대한 사용자 의견 제출 및 보기