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 in locale. In XAML puoi stabilire gli elementi della risorsa come elementi oggetto figlio di un frameworkElement.Resources elemento 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, in cui ogni risorsa può essere accessibile tramite la relativa chiave.
Esempio
Questo esempio mostra una definizione XAML di un dizionario risorse semplice che contiene un elemento, 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'uso delle definizioni delle risorse XAML e dei riferimenti alle risorse è il modo tipico per usare la proprietà Resources. La maggior parte dei casi XAML può gestire scenari di risorse comuni. Ma è anche possibile usare la proprietà per accedere all'API di 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 alla Resources proprietà sono inline e immediatamente seguiti da un utilizzo dell'indicizzatore che recupera un elemento ResourceDictionary con la chiave RainbowBrushstringa . 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 ResourceDictionary è una raccolta con chiave, basata su un modello IMap<K,V> se si esegue la programmazione con C++, o un modello TKey,TValue> IDictionary< 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 la lingua usata 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 essere archiviate anche 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.