Suche…


Einführung

In den neuen Windows 10-Anwendungen gibt es viele Möglichkeiten, auf eine Ressource innerhalb von XAML-Code oder im Code dahinter zu verweisen. Zunächst müssen Sie die Ressourcen an einem zugänglichen Ort angeben. Der einfachste Weg ist, ein ResourceDictionary im Kontext zu deklarieren, sagen wir auf der aktuellen Seite.

1. Ressourcenwörterbuch

Ausschnitt aus 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. Globale Ressourcen

Auf Ressourcenwörterbücher kann nur in dem Kontext zugegriffen werden, in dem sie deklariert wurden. Wenn Sie also auf Ressourcen verweisen möchten, die in einem Seitenkontext von einer anderen Seite deklariert sind, werden sie nicht gefunden. Wenn also globale Ressourcen definiert werden müssen, die im Rahmen des Frameworks enthalten sind, machen wir das in App.xaml

Ausschnitt aus 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>

Auf diese Weise können wir von überall in unserer App auf die ColorRed zugreifen. Aber warten Sie, wir wollen diese kleine Datei nicht mit all unseren App-Ressourcen infizieren! Also machen wir MergedDictionaries

3. Zusammengeführte Wörterbücher

Normalerweise sind die Dinge etwas komplexer, und zur Unterstützung der Skalierbarkeit sollten wir die Dinge aufteilen. So können wir verschiedene Dateien mit unterschiedlichen Ressourcenwörterbüchern definieren, dh Ressourcen für die Themen der Benutzeroberflächensteuerelemente, Ressourcen für Texte usw. Dann werden alle in der App.xaml-Datei zusammengeführt.

Ausschnitt aus 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>

Sie können eine neue Wörterbuchdatei erstellen, indem Sie mit der rechten Maustaste auf den Asset-Ordner klicken [Hinzufügen -> Neues Element].

Geben Sie hier die Bildbeschreibung ein

4. Zugriff auf Ressourcen

Wir müssen jetzt auf unsere deklarierten Ressourcen zugreifen, um dies aus XAML-Code heraus zu verwenden, verwenden wir {ThemeResource ResourceKey} oder {StaticResource ResourceKey}

to be continued later.


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow