수색…


소개

새로운 Windows 10 응용 프로그램에는 XAML 코드 또는 코드 내에서 리소스를 참조하는 여러 가지 방법이 있습니다. 우선 액세스 가능한 장소에서 리소스를 선언해야합니다. 쉬운 방법은 현재 페이지에서 ResourceDictionary 를 컨텍스트로 선언하는 것입니다.

1. 자원 사전

MainPage.xaml의 스 니펫

<Page
    x:Class="MyNewApp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MyNewApp"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Page.Resources>
        <!-- Creates a resource dictionary in the page context -->
        <ResourceDictionary>
            <!-- This is a solid color brush resource
                 NOTE: Each resource inside a resource dictionary must have a key -->
            <SolidColorBrush x:Key="ColorRed">Red</SolidColorBrush>
        </ResourceDictionary>
    </Page.Resources>

    <!-- Using ThemeResource in here to access a resource already defined -->
    <Grid Background="{ThemeResource ColorRed}">

    </Grid>
</Page>

2. 글로벌 리소스

리소스 사전은 선언 된 컨텍스트 내에서만 액세스 할 수 있으므로 다른 페이지에서 한 페이지 컨텍스트로 선언 된 리소스를 참조하려는 경우 리소스 사전을 찾을 수 없습니다. 따라서 우리가 프레임 워크와 함께 제공되는 것과 같이 전역 자원을 정의해야한다면 App.xaml에서 할 수 있습니다

App.xaml의 스 니펫

<Application
    x:Class="MyNewApp.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    RequestedTheme="Dark">

    <Application.Resources>
        <ResourceDictionary>
            <SolidColorBrush x:Key="ColorRed">Red</SolidColorBrush>
        </ResourceDictionary>
    </Application.Resources>
</Application>

이 방법으로 우리는 우리 앱의 ColorRed 색상 리소스에 액세스 할 수 있습니다. 그러나 잠깐, 우리는 우리의 모든 애플 리케이션의 리소스와 그 작은 파일에 감염되고 싶지 않아! 그래서 우리는 MergedDictionaries

3. 병합 된 사전

거의 대부분 상황은 조금 더 복잡하고 확장 성을 지원하기 위해 우리는 여러 것을 분리해야합니다. 그래서 우리는 서로 다른 리소스 사전을 포함하는 다양한 파일을 정의 할 수 있습니다. 즉, UI 컨트롤의 테마 리소스, 텍스트 리소스 등을 정의한 다음 App.xaml 파일에 이들을 모두 병합합니다.

App.xaml의 스 니펫

<Application
    x:Class="MyNewApp.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    RequestedTheme="Dark">

    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/Assets/Themes/GeneralStyles.xaml"/>
                <ResourceDictionary Source="/Assets/Themes/TemplatedControls.xaml"/>
                <ResourceDictionary Source="/Assets/Strings/Texts.xaml"/>
                <ResourceDictionary Source="/Assets/Strings/ErrorTexts.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

자산 폴더 [Add -> New Item]을 마우스 오른쪽 버튼으로 클릭하여 새 사전 파일을 만들 수 있습니다.

여기에 이미지 설명을 입력하십시오.

4. 리소스 액세스

선언 된 리소스에 액세스해야하므로 XAML 코드에서 {ThemeResource ResourceKey} 또는 {StaticResource ResourceKey} 코드를 사용합니다.

to be continued later.


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow