Verwenden von Anwendungsressourcen (WPF .NET)

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, welche Datei Ihr Projekt verwendet. Von der Anwendung definierte Ressourcen sind global ausgerichtet und für alle Teile der Anwendung zugänglich.

Wichtig

Der Desktopleitfaden zu .NET 7 und .NET 6 ist in Bearbeitung.

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 deklarierter Stil. Da ein vollständiger Stil, der eine Steuerelementvorlage enthält, sehr lang sein kann, wird in diesem Beispiel die Steuerelementvorlage weggelassen, die im Setter für die Eigenschaft ContentTemplate des Stils 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“ wurde nicht im Bereich des aktuellen Objekts und Fensters gefunden, sodass die Ressourcensuche über die aktuelle Seite hinaus 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>

Weitere Informationen