FrameworkElement.Resources Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene il dizionario risorse definito localmente. In XAML puoi stabilire elementi di risorsa come elementi oggetto figlio di un frameworkElement.Resources
elemento di proprietà tramite la sintassi della raccolta implicita 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>
Valore della proprietà
Dizionario delle risorse definito localmente corrente, a cui è possibile accedere a ogni risorsa tramite la relativa chiave.
Esempio
Questo esempio mostra una definizione XAML di un dizionario Risorse semplice che contiene un elemento, un Oggetto 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'uso delle definizioni delle risorse XAML e dei riferimenti alle risorse è il modo tipico per usare la proprietà Resources. La maggior parte del tempo XAML può gestire scenari di risorse comuni. È anche possibile usare la proprietà per accedere all'API della raccolta e quindi recuperare le risorse con il codice di runtime, se necessario per lo scenario. In questo esempio viene illustrato l'accesso al codice alla Resources
proprietà . In questo esempio i riferimenti alle Resources
proprietà sono inline e immediatamente seguiti da un utilizzo dell'indicizzatore che recupera un elemento ResourceDictionary con la chiave RainbowBrush
stringa . Prendere nota del cast esplicito; il valore restituito per gli elementi di ResourceDictionary è sempre un oggetto non tipizzato.
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>
Commenti
Lo scopo principale degli elementi di una Resources
raccolta è farvi riferimento da altre parti del codice XAML, usando un riferimento all'estensione di markup {StaticResource} (o il riferimento all'estensione di markup {ThemeResource} simile). Se si vuole accedere alla Resources
raccolta in fase di esecuzione, è possibile usare l'API del modello pertinente per eseguire query, aggiungere o rimuovere elementi in ResourceDictionary.
Per altre info ed esempi, vedi Riferimenti alle risorse ResourceDictionary e XAML.
Un oggetto ResourceDictionary è una raccolta con chiave basata su un modello IMap<K,V> se si programmano con estensioni del componente Visual C++ (C++/CX) o un modello IDictionary<TKey,TValue> se si esegue la programmazione con C#. L'API usata nel codice per lavorare con il dizionario e i relativi elementi riflette il modello sottostante e quindi il linguaggio usato per l'app.
L'applicazione ha anche una proprietà Resources , che può essere usata per archiviare le risorse che devono essere accessibili da più di una pagina nell'app. Le risorse per i controlli personalizzati possono anche essere archiviate in un file XAML separato creato dal modello di progetto predefinito di un controllo basato su modelli.
Gli elementi visualizzati in una raccolta di risorse XAML non sono necessariamente l'intera risorsa definita da XAML disponibile in fase di esecuzione. Altre risorse sono disponibili in fase di esecuzione, a causa dell'influenza della proprietà MergedDictionaries in un ResourceDictionary. Il MergedDictionaries
valore può introdurre altri dizionari, ad esempio le risorse definite dal sistema, ad esempio le risorse dei modelli di controllo XAML predefiniti. Le risorse specifiche del tema di runtime sono disponibili anche dalla proprietà ThemeDictionaries simile. Se si accede a una raccolta Resources in fase di esecuzione e si esegue una query per una chiave specifica usando l'indicizzatore o il Item
metodo Lookup , è possibile accedere e recuperare queste risorse. Per altre info, vedi Riferimenti alle risorse ResourceDictionary e XAML. Inoltre, Application.Resources può fornire risorse disponibili per qualsiasi riferimento XAML nell'app e quindi estendere le risorse in qualsiasi dizionario FrameworkElement.Resources specificato.