FrameworkElement.Resources Propriété

Définition

Obtient le dictionnaire de ressources défini localement. En XAML, vous pouvez établir des éléments de ressources en tant qu’éléments d’objet enfants d’un frameworkElement.Resources élément de propriété, via la syntaxe de collection implicite XAML.

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>

Valeur de propriété

Dictionnaire de ressources défini localement actuel, où chaque ressource est accessible à l’aide de sa clé.

Exemples

Cet exemple montre une définition XAML d’un dictionnaire Resources simple qui contient un élément, un 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}" .../>

L’utilisation de définitions de ressources XAML et de références de ressources est le moyen classique d’utiliser la propriété Resources. La plupart du temps, XAML seul peut gérer des scénarios de ressources courants. Mais vous pouvez également utiliser la propriété pour accéder à l’API de collection et ainsi récupérer des ressources avec du code d’exécution, si votre scénario en a besoin. Cet exemple montre l’accès du code à la propriété Resources. Dans cet exemple, les références de la propriété Resources sont inline et immédiatement suivies d’une utilisation de l’indexeur qui récupère un élément ResourceDictionary avec la clé RainbowBrushde chaîne . Notez le cast explicite ; la valeur de retour des éléments du ResourceDictionary est toujours un objet non typé.

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>

Remarques

L’objectif principal des éléments d’une collection Resources est de les faire référence à partir d’autres parties de votre XAML, à l’aide d’une référence d’extension de balisage {StaticResource} (ou de la référence d’extension de balisage {ThemeResource} similaire). Si vous souhaitez accéder à la collection Resources au moment de l’exécution, vous pouvez utiliser l’API du modèle approprié pour interroger, ajouter ou supprimer des éléments dans le ResourceDictionary.

Pour plus d’informations et d’exemples, consultez ResourceDictionary et références de ressources XAML.

Un ResourceDictionary est une collection à clés, qui est basée sur un modèle IMap<K,V> si vous programmez avec des extensions de composant Visual C++ (C++/CX), ou un modèle IDictionary<TKey,TValue> si vous programmationz avec C# ou Microsoft Visual Basic. L’API que vous utilisez dans le code pour utiliser le dictionnaire et ses éléments reflètent le modèle sous-jacent et donc le langage que vous utilisez pour votre application.

L’application a également une propriété Resources , qui peut être utilisée pour stocker des ressources qui doivent être accessibles à partir de plusieurs pages de l’application. Les ressources pour les contrôles personnalisés peuvent également être stockées dans un fichier XAML distinct créé par le modèle de projet par défaut d’un contrôle modèle.

Les éléments que vous voyez dans une collection de ressources XAML ne sont pas nécessairement l’intégralité des ressources xaml définies disponibles au moment de l’exécution. D’autres ressources sont disponibles au moment de l’exécution, en raison de l’influence de la propriété MergedDictionaries sur un ResourceDictionary. La valeur MergedDictionaries peut introduire d’autres dictionnaires tels que les ressources définies par le système, telles que les ressources des modèles de contrôle XAML par défaut. Les ressources spécifiques au thème d’exécution sont également disponibles à partir de la propriété ThemeDictionaries similaire. Si vous accédez à une collection Resources au moment de l’exécution et que vous interrogez une clé spécifique à l’aide de l’indexeur Item ou de la méthode Lookup , vous pouvez accéder à ces ressources et les récupérer. Pour plus d’informations, consultez ResourceDictionary et références de ressources XAML. En outre, Application.Resources peut fournir des ressources disponibles pour n’importe quelle référence XAML dans l’application et ainsi étendre les ressources dans un dictionnaire FrameworkElement.Resources donné.

S’applique à

Voir aussi