FrameworkElement.Resources Eigenschaft

Definition

Ruft das lokal definierte Ressourcenwörterbuch ab. In XAML können Sie Ressourcenelemente als untergeordnete Objektelemente eines frameworkElement.Resources Eigenschaftselements über die implizite 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 aktuell lokal definierte Wörterbuch der Ressourcen, auf das jede Ressource über seinen Schlüssel zugegriffen werden kann.

Beispiele

Dieses Beispiel zeigt eine XAML-Definition eines einfachen Ressourcenwö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 zum Verwenden der Resources-Eigenschaft. In den meisten Fällen kann XAML allein allgemeine Ressourcenszenarien verarbeiten. Sie können aber auch die Eigenschaft verwenden, um auf die Sammlungs-API zuzugreifen und damit Ressourcen mit Laufzeitcode abzurufen, falls dies für Ihr Szenario erforderlich ist. In diesem Beispiel wird der Codezugriff auf die Resources Eigenschaft veranschaulicht. In diesem Beispiel sind die Resources Eigenschaftsverweise inline und unmittelbar gefolgt von einer Indexerverwendung, die ein ResourceDictionary-Element mit dem Zeichenfolgenschlüssel RainbowBrushabruft. Beachten Sie die explizite Umwandlung; Der Rückgabewert für Elemente aus dem 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"];
}
<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, anhand eines {StaticResource} -Markuperweiterungsverweises (oder des ähnlichen {ThemeResource}-Markuperweiterungsverweises) von anderen Teilen Ihres XAML darauf zu verweisen. Wenn Sie zur Laufzeit auf die Resources Sammlung 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üsselauflistung, die auf einer IMap-K,V-Vorlage<> basiert, wenn Sie mit C++ programmieren, oder eine IDictionary<TKey,TValue-Vorlage>, wenn Sie mit C# programmieren. Die API, die Sie im Code zum Arbeiten mit dem Wörterbuch und den zugehörigen Elementen verwenden, spiegeln 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 über mehrere Seiten 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 vorlagenbasierten Steuerelements erstellt wird.

Die Elemente, die in einer XAML-Ressourcenauflistung angezeigt werden, sind nicht unbedingt die gesamtheit der XAML-definierten Ressourcen, die zur Laufzeit verfügbar sind. Andere Ressourcen sind zur Laufzeit verfügbar, aufgrund des Einflusses der MergedDictionaries-Eigenschaft auf ein ResourceDictionary. Der MergedDictionaries Wert kann andere Wörterbücher wie z. B. die vom System definierten Ressourcen, z. B. Ressourcen aus den Standardmäßigen XAML-Steuerelementvorlagen, einführen. 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 der Item Indexer- oder Nachschlagemethode abfragen, können Sie auf diese Ressourcen zugreifen und diese 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 somit die Ressourcen in einem beliebigen FrameworkElement.Resources-Wörterbuch erweitern.

Gilt für:

Weitere Informationen