Resources, propriété

FrameworkElement.Resources Property

Obtient le dictionnaire de ressources défini localement. En XAML, vous pouvez établir des éléments de ressource comme éléments objets enfants d'un élément de propriété frameworkElement.Resources, via la syntaxe XAML de collection implicite.

Syntaxe


public ResourceDictionary Resources { get; set; }


<frameworkElement>
  <frameworkElement.Resources>
    oneOrMoreResourceElements
  </frameworkElement.Resources>
</frameworkElement>

XAML Values

oneOrMoreResourceElements

Un ou plusieurs éléments objet, chacun d'entre eux créant et définissant une ressource. Chaque élément de propriété de ressource dans un ResourceDictionary doit avoir une clé unique (en général, x:Key, spécifié comme attribut, avec une valeur de chaîne). La clé est utilisée lorsque les valeurs sont extraites de ResourceDictionary soit par programme, soit via l'utilisation du code XAML StaticResource.

Valeur de propriété

Type: ResourceDictionary

Dictionnaire actif défini localement pour les ressources, où chaque ressource peut être accédée par sa clé.

Remarques

Le rôle principal des éléments d'une collection Resources est qu'ils puissent être référencés depuis d'autres parties de votre XAML à l'aide d'une référence StaticResource. Si vous souhaitez accéder à la collection Resources au moment de l'exécution, utilisez les API du modèle approprié pour lancer une requête, ajouter ou supprimer des éléments dans ResourceDictionary.

Pour plus d'informations et d'exemples, consultez ResourceDictionary and StaticResource references.

ResourceDictionary est une collection à clé, qui est basé sur un modèle IMap<K,V> si vous programmez avec le langage C++, ou un modèle IDictionary<TKey,TValue> si vous programmez avec le langage C# ou Microsoft Visual Basic.

Application a également une propriété Resources, qui peut être utilisée pour stocker les ressources qui doivent être accessibles à partir de plusieurs pages dans 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 basé sur un modèle.

Les éléments que vous voyez dans une collection Resources XAML ne sont pas nécessairement l'intégralité des ressources définies en XAML 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 ResourceDictionary. La valeur de MergedDictionaries peut introduire d'autres dictionnaires tels que les ressources définies par le système, par exemple les ressources des modèles de contrôle XAML par défaut. Les ressources runtime spécifiques à un thème sont aussi disponibles à partir de la propriété ThemeDictionaries similaire. Si vous accédez à une collection Resources au moment de l'exécution et que vous demandez une clé spécifique à l'aide de l'indexeur Item ou la méthode Lookup, accédez à ces ressources et récupérez-les. Pour plus d'informations, consultez Références ResourceDictionary et StaticResource.

Exemples

Cet exemple montre une définition XAML d'un dictionnaire Resources simple qui contient un seul é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>


Cet exemple montre un accès de code classique à la propriété Resources. Dans cet exemple, les références de la propriété Resources sont inline et immédiatement suivies de l'utilisation d'un indexeur qui récupère un élément ResourceDictionary avec la clé de chaîne RainbowBrush. Notez le cast explicite ; la valeur de retour pour les éléments de ResourceDictionary est toujours un objet non typé.


    void SetBGByResource(object sender, RoutedEventArgs e)
    {
      Button b = sender as Button;
      b.Background = (Brush)this.Resources["RainbowBrush"];
    }


Configuration requise

Client minimal pris en charge

Windows 8

Serveur minimal pris en charge

Windows Server 2012

Espace de noms

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Métadonnées

Windows.winmd

Voir aussi

FrameworkElement
ResourceDictionary
x:Key
Références ResourceDictionary et StaticResource
StaticResource
Exemple de ressources et de localisation d'application
XAML, vue d'ensemble

 

 

Afficher:
© 2018 Microsoft