Zoeken…


Invoering

In de nieuwe Windows 10-toepassingen zijn er veel manieren om naar een bron in de XAML-code of in de code erachter te verwijzen. Allereerst moet u de bronnen op een toegankelijke plaats aangeven. De gemakkelijke manier is om een ResourceDictionary in context te verklaren, laten we zeggen op de huidige pagina.

1. Bronwoordenboek

Fragment van 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. Wereldwijde bronnen

Bronwoordenboeken zijn alleen toegankelijk binnen de context waarin ze zijn gedeclareerd, dus als we van plan waren te verwijzen naar bronnen die in de ene paginacontext van een andere pagina zijn gedeclareerd, zullen ze niet worden gevonden. Dus als we globale bronnen moeten definiëren zoals degene die bij het framework horen, doen we dat in App.xaml

Fragment van 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>

Op deze manier hebben we overal in onze app toegang tot ColorRed kleurenbronnen. Maar wacht, we willen dat kleine bestandje niet besmetten met alle bronnen van onze app! Dus we doen MergedDictionaries

3. Samengevoegde woordenboeken

Meestal zijn dingen een beetje complexer en om schaalbaarheid te ondersteunen, moeten we dingen uit elkaar halen. Dus we kunnen verschillende bestanden definiëren die verschillende bronnenwoordenboeken bevatten, dat wil zeggen bronnen voor de thema's van UI-besturingselementen, bronnen voor teksten, enzovoort, dan voegen we ze allemaal samen in App.xaml-bestand.

Fragment van 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>

U kunt een nieuw woordenboekbestand maken door met de rechtermuisknop op Activummap te klikken [Toevoegen -> Nieuw item]

voer hier de afbeeldingsbeschrijving in

4. Toegang tot bronnen

We moeten nu toegang hebben tot onze aangegeven bronnen, om dat te doen vanuit XAML-code gebruiken we {ThemeResource ResourceKey} of {StaticResource ResourceKey}

to be continued later.


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow