FrameworkElement.Resources Propriété

Définition

Obtient le dictionnaire de ressources défini localement. En XAML, vous pouvez établir des éléments de ressource en tant qu’éléments 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 par 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 la méthode classique pour 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 Resources propriété . Dans cet exemple, les Resources références de propriété 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 pour les éléments de 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"];
}
<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 Resources collection est d’y faire référence à partir d’autres parties de votre code 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 Resources collection au moment de l’exécution, vous pouvez utiliser l’API du modèle approprié pour interroger, ajouter ou supprimer des éléments dans ResourceDictionary.

Pour obtenir plus d’informations et des exemples, consultez Références aux ressources ResourceDictionary et XAML.

Un ResourceDictionary est une collection à clés, qui est basée sur un modèle K,V> IMap< si vous programmez avec des extensions de composant Visual C++ (C++/CX), ou un modèle IDictionary<TKey,TValue> si vous programmationz avec C#. L’API que vous utilisez dans le code pour travailler avec le dictionnaire et ses éléments reflète 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 les 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 avec modèle.

Les éléments que vous voyez dans une collection xaml Resources 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 MergedDictionaries valeur 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 ou de la Item méthode Lookup , vous pouvez accéder à ces ressources et les récupérer. Pour plus d’informations, consultez Références aux ressources ResourceDictionary et XAML. Application.Resources peut également 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