FrameworkElement.Resources Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient le dictionnaire de ressources défini localement. En XAML, vous pouvez établir des éléments de ressource en tant qu’éléments d’objet enfant 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 actuellement défini localement, où chaque ressource est accessible par sa clé.
Exemples
Cet exemple montre une définition XAML d’un dictionnaire de ressources 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 des définitions de ressources XAML et des références de ressources est la façon classique d’utiliser la propriété Resources. La plupart du temps, XAML seul peut gérer des scénarios de ressources courants. Toutefois, 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 cela est nécessaire par votre scénario. Cet exemple montre l’accès au 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 des é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 de les 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 similaire de l’extension de balisage {ThemeResource} ). 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 plus d’informations et d’exemples, consultez les références de ressources ResourceDictionary et XAML.
Un ResourceDictionary est une collection clé, basée sur un modèle IMap<K,V> si vous programmationz avec C++, ou un modèle TKey IDictionary,TValue<> si vous programmationz avec C#. L’API que vous utilisez dans le code pour utiliser le dictionnaire et ses éléments reflètent le modèle sous-jacent et, par conséquent, la langue que vous utilisez pour votre application.
L’application possède é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 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 par le langage 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 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 du runtime sont également disponibles à partir de la propriété ThemeDictionaries similaire. Si vous accédez à une collection Resources au moment de l’exécution et 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 les références de ressources ResourceDictionary et XAML. En outre, Application.Resources peut fournir des ressources disponibles pour toute référence XAML dans l’application et étendre ainsi les ressources dans n’importe quel dictionnaire FrameworkElement.Resources donné.