Freigeben über


So verwenden Sie Anwendungsressourcen

In diesem Beispiel wird veranschaulicht, wie anwendungsdefinierte Ressourcen verwendet werden. Ressourcen können auf Anwendungsebene definiert werden, im Allgemeinen über die Datei "App.xaml " oder " Application.xaml ", je nachdem, welches Projekt Sie verwenden. Ressourcen, die von der Anwendung definiert werden, werden global definiert und können von allen Teilen der Anwendung zugänglich sein.

Beispiel

Das folgende Beispiel zeigt eine Anwendungsdefinitionsdatei. Die Anwendungsdefinitionsdatei definiert einen Ressourcenabschnitt (einen Wert für die Resources Eigenschaft). Auf ressourcen, die auf Anwendungsebene definiert sind, kann von allen anderen Seiten zugegriffen werden, die Teil der Anwendung sind. In diesem Fall ist die Ressource ein definierter Stil. Da eine vollständige Formatvorlage, die eine Steuerelementvorlage enthält, lang sein kann, wird in diesem Beispiel die Steuerelementvorlage weggelassen, die innerhalb des ContentTemplate Eigenschaftensetters der Formatvorlage definiert ist.

<Application.Resources>
    <Style TargetType="Border" x:Key="FancyBorder">
        <Setter Property="Background" Value="#4E1A3D" />
        <Setter Property="BorderThickness" Value="5" />
        <Setter Property="BorderBrush">
            <Setter.Value>
                <LinearGradientBrush>
                    <GradientStop Offset="0.0" Color="#4E1A3D"/>
                    <GradientStop Offset="1.0" Color="Salmon"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
    </Style>
</Application.Resources>

Das folgende Beispiel zeigt eine XAML-Seite, die auf eine Ressource auf Anwendungsebene aus dem vorherigen Beispiel verweist. Auf die Ressource wird mit einer StaticResource-Markuperweiterung verwiesen, die den eindeutigen Ressourcenschlüssel für die Ressource angibt. Die Ressource "FancyBorder" wird nicht im Bereich des aktuellen Objekts und Fensters gefunden, sodass die Ressourcensuche über die aktuelle Seite und in Ressourcen auf Anwendungsebene fortgesetzt wird.

<Border Style="{StaticResource FancyBorder}">
    <StackPanel Margin="5">
        <Button>Button 1</Button>
        <Button>Button 2</Button>
        <Button>Button 3</Button>
        <Button>Button 4</Button>
    </StackPanel>
</Border>

Siehe auch