Freigeben über


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 App.xaml oder Application.xaml Datei, je nachdem, welche Datei Ihr Projekt verwendet. 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 eigenschaft Resources). 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 eine deklarierte Formatvorlage. Da eine vollständige Formatvorlage, die eine Steuerelementvorlage enthält, lang sein kann, wird in diesem Beispiel die Steuerelementvorlage, die im Eigenschaftensetzer ContentTemplate der Formatvorlage definiert ist, weggelassen.

<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 Markup Extension 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 hinaus in die Anwendungsebenenressourcen fortgeführt 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