Freigeben über


FrameworkElement.Resources Eigenschaft

Definition

Ruft das lokal definierte Ressourcenverzeichnis ab. In XAML können Sie Ressourcenelemente als untergeordnete Objektelemente eines frameworkElement.Resources Eigenschaftselements mithilfe der impliziten XAML-Sammlungssyntax einrichten.

ResourceDictionary Resources();

void Resources(ResourceDictionary value);
public ResourceDictionary Resources { get; set; }
var resourceDictionary = frameworkElement.resources;
frameworkElement.resources = resourceDictionary;
Public Property Resources As ResourceDictionary
<frameworkElement>
  <frameworkElement.Resources>
    oneOrMoreResourceElements
  </frameworkElement.Resources>
</frameworkElement>

Eigenschaftswert

Das aktuelle lokal definierte Ressourcenverzeichnis, in dem auf jede Ressource über ihren Schlüssel zugegriffen werden kann.

Beispiele

Dieses Beispiel zeigt eine XAML-Definition eines einfachen Resources-Wörterbuchs, das ein Element enthält, eine DataTemplate.

<Grid.Resources>
  <DataTemplate x:Key="CBTemplate">
    <Grid>
      <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
      </Grid.ColumnDefinitions>
      <Image Grid.Column="0" Width="50" Height="50" 
        Source="{Binding Photo}" Stretch="Fill"/>
      <TextBlock Grid.Column="1" Text="{Binding Title}" 
        Margin="10" HorizontalAlignment="Left" FontSize="20"/>
    </Grid>
  </DataTemplate>
</Grid.Resources>
<GridView ItemTemplate="{StaticResource CBTemplate}" .../>

Die Verwendung von XAML-Ressourcendefinitionen und Ressourcenverweise ist die typische Methode zur Verwendung der Resources-Eigenschaft. In den meisten Fällen kann XAML allein gängige Ressourcenszenarien verarbeiten. Sie können aber auch die -Eigenschaft verwenden, um auf die Sammlungs-API zuzugreifen und so Ressourcen mit Laufzeitcode abzurufen, wenn dies in Ihrem Szenario erforderlich ist. In diesem Beispiel wird der Codezugriff auf die Resources-Eigenschaft veranschaulicht. In diesem Beispiel wird auf die Resources-Eigenschaft verwiesen, und unmittelbar darauf folgt eine Indexerverwendung, die ein ResourceDictionary-Element mit dem Zeichenfolgenschlüssel RainbowBrushabruft. Beachten Sie die explizite Umwandlung. Der Rückgabewert für Elemente aus resourceDictionary ist immer ein nicht typisiertes Objekt.

void MainPage::SetBGByResource(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
  Button^ b = safe_cast<Windows::UI::Xaml::Controls::Button^>(sender);
  b->Background = safe_cast<Windows::UI::Xaml::Media::Brush^>(this->Resources->Lookup("RainbowBrush"));
}
void SetBGByResource(object sender, RoutedEventArgs e)
{
  Button b = sender as Button;
  b.Background = (Brush)this.Resources["RainbowBrush"];
}
Private Sub SetBGByResource(sender As Object, e As RoutedEventArgs)
    Dim b As Button = TryCast(sender, Button)
    b.Background = DirectCast(Me.Resources("RainbowBrush"), Brush)
End Sub
<Page.Resources>
...
  <LinearGradientBrush x:Key="RainbowBrush">
    <GradientStop Color="Red" Offset="0.05" />
    <GradientStop Color="Orange" Offset="0.23" />
    <GradientStop Color="Yellow" Offset="0.41" />
    <GradientStop Color="Green" Offset="0.59" />
    <GradientStop Color="Blue" Offset="0.77" />
    <GradientStop Color="Purple" Offset="0.95" />
 </LinearGradientBrush>
</Page.Resources>

Hinweise

Der Hauptzweck der Elemente in einer Resources-Auflistung besteht darin, aus anderen Teilen Ihrer XAML auf sie zu verweisen, indem sie einen {StaticResource} -Markuperweiterungsverweis (oder den ähnlichen { ThemeResource}-Markuperweiterungsverweis verwenden ). Wenn Sie zur Laufzeit auf die Resources-Auflistung zugreifen möchten, können Sie die API der relevanten Vorlage verwenden, um Elemente im ResourceDictionary abzufragen, hinzuzufügen oder zu entfernen.

Weitere Informationen und Beispiele finden Sie unter ResourceDictionary- und XAML-Ressourcenverweise.

Ein ResourceDictionary ist eine schlüsselbasierte Sammlung, die auf einer IMap<K,V-Vorlage> basiert, wenn Sie mit Visual C++-Komponentenerweiterungen (C++/CX) programmieren, oder einer IDictionary<TKey,TValue-Vorlage> , wenn Sie mit C# oder Microsoft Visual Basic programmieren. Die API, die Sie im Code verwenden, um mit dem Wörterbuch und seinen Elementen zu arbeiten, spiegelt die zugrunde liegende Vorlage und somit die Sprache wider, die Sie für Ihre App verwenden.

Die Anwendung verfügt auch über eine Resources-Eigenschaft , die zum Speichern von Ressourcen verwendet werden kann, auf die von mehr als einer Seite in der App zugegriffen werden soll. Ressourcen für benutzerdefinierte Steuerelemente können auch in einer separaten XAML-Datei gespeichert werden, die von der Standardprojektvorlage eines steuerelements mit Vorlagen erstellt wird.

Die Elemente, die in einer XAML Resources-Auflistung angezeigt werden, sind nicht notwendigerweise die Gesamtheit der xaml-definierten Ressourcen, die zur Laufzeit verfügbar sind. Aufgrund des Einflusses der MergedDictionaries-Eigenschaft auf ein ResourceDictionary-Objekt stehen zur Laufzeit weitere Ressourcen zur Verfügung. Mit dem Wert MergedDictionaries können andere Wörterbücher eingeführt werden, z. B. die vom System definierten Ressourcen, z. B. Ressourcen aus den Standardmäßigen XAML-Steuerelementvorlagen. Laufzeitdesignspezifische Ressourcen sind auch über die ähnliche ThemeDictionaries-Eigenschaft verfügbar. Wenn Sie zur Laufzeit auf eine Resources-Auflistung zugreifen und einen bestimmten Schlüssel mithilfe des Item-Indexers oder der Lookup-Methode abfragen, können Sie auf diese Ressourcen zugreifen und sie abrufen. Weitere Informationen finden Sie unter ResourceDictionary- und XAML-Ressourcenverweise. Außerdem kann Application.Resources Ressourcen bereitstellen, die für jede XAML-Referenz in der App verfügbar sind, und damit die Ressourcen in einem bestimmten FrameworkElement.Resources-Wörterbuch erweitern.

Gilt für:

Weitere Informationen