FrameworkContentElement.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 o imposta il dizionario risorse corrente definito localmente.
public:
property System::Windows::ResourceDictionary ^ Resources { System::Windows::ResourceDictionary ^ get(); void set(System::Windows::ResourceDictionary ^ value); };
public System.Windows.ResourceDictionary Resources { get; set; }
[System.Windows.Markup.Ambient]
public System.Windows.ResourceDictionary Resources { get; set; }
member this.Resources : System.Windows.ResourceDictionary with get, set
[<System.Windows.Markup.Ambient>]
member this.Resources : System.Windows.ResourceDictionary with get, set
Public Property Resources As ResourceDictionary
Valore della proprietà
Le risorse correnti definite localmente. Si tratta di un dizionario risorse in cui l'accesso alle risorse all'interno del dizionario viene eseguito tramite chiave.
- Attributi
Esempio
Nell'esempio seguente viene stabilita una Resources raccolta in un FlowDocument elemento radice. FlowDocument è una scelta tipica perché è una delle poche FrameworkContentElement classi che hanno senso come elemento radice e le risorse vengono in genere archiviate nella radice della pagina o a livelli ancora più elevati, ad esempio nell'applicazione.
<FlowDocument
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class=" SDKSample.Page2">
<FlowDocument.Resources>
<Style TargetType="{x:Type Paragraph}" x:Key="BluePara">
<Setter Property="Background" Value="Blue"/>
<Setter Property="FontSize" Value="18"/>
<Setter Property="Foreground" Value="LightBlue"/>
<Setter Property="FontFamily" Value="Trebuchet MS"/>
</Style>
</FlowDocument.Resources>
<Paragraph Style="{StaticResource BluePara}">Lorem ipsum etc.</Paragraph>
</FlowDocument>
Commenti
I dizionari di risorse che possono essere definiti completamente o parzialmente in Extensible Application Markup Language (XAML) vengono in genere creati come elemento di proprietà e in genere si trovano nell'elemento radice per qualsiasi singola pagina o per l'applicazione. L'inserimento del dizionario risorse a questo livello semplifica la ricerca da singoli elementi figlio nella pagina (o da qualsiasi pagina, nel caso dell'applicazione). Nella maggior parte degli scenari dell'applicazione è consigliabile definire gli stili come elementi oggetto all'interno di un dizionario risorse o essere definiti come risorse esterne in modo che l'intera risorsa di stile possa essere autonoma(questo approccio consente di separare le responsabilità di progettazione dalle responsabilità degli sviluppatori separando i file fisici che devono essere modificati).
Si noti che questa proprietà restituisce solo il dizionario risorse dichiarato direttamente all'interno di tale elemento. Questo è diverso dal processo di ricerca delle risorse effettivo, in cui un elemento figlio può accedere a una delle risorse definite in ogni elemento padre, cercando in modo ricorsivo verso l'alto.
Le risorse possono essere a cui fa riferimento anche il codice dall'interno della raccolta, ma tenere presente che le risorse create in XAML non saranno sicuramente accessibili fino a quando Loaded non viene generato dall'elemento che dichiara il dizionario. Infatti, le risorse vengono analizzate in modo asincrono e non è nemmeno l'evento Loaded è una garanzia che sia possibile fare riferimento a una risorsa definita XAML. Per questo motivo è consigliabile accedere in genere solo alle risorse definite XAML come parte del codice run-time o tramite altre tecniche XAML, ad esempio stili o riferimenti all'estensione delle risorse per i valori degli attributi. Quando si accede alle risorse tramite codice, è essenzialmente equivalente a un riferimento DynamicResource creato da XAML.
Il sottostante ResourceDictionary supporta i metodi necessari per aggiungere, rimuovere o eseguire query sulle risorse dall'interno della raccolta usando il codice. La Resources proprietà è impostata per supportare lo scenario di sostituzione completa della raccolta di risorse di un elemento per essere una nuova o diversa ResourceDictionary.
Si noti che la sintassi XAML illustrata non include un elemento per .ResourceDictionary Si tratta di un esempio di sintassi di raccolta implicita; un tag che rappresenta l'elemento della raccolta può essere omesso. Gli elementi aggiunti come elementi alla raccolta vengono invece specificati. Per altre informazioni sulle raccolte implicite e XAML, vedere Sintassi XAML in dettaglio. Un caso in cui un ResourceDictionary oggetto viene ancora specificato in modo esplicito come elemento è se si introduce un dizionario unito, nel qual caso non sono in genere presenti elementi figlio per tale ResourceDictionary. Per informazioni dettagliate, vedere Dizionari risorse uniti.
Utilizzo della sintassi XAML per elementi proprietà
<object>
<object.Resources>
oneOrMoreResourceElements
</object.Resources>
</object>
Valori XAML
oneOrMoreResourceElements
Uno o più elementi oggetto, ognuno dei quali definisce una risorsa. Ogni elemento della proprietà di risorsa all'interno di ogni ResourceDictionary oggetto deve avere un valore univoco per la direttiva x:Key, che funge da chiave univoca quando i valori vengono recuperati dall'oggetto ResourceDictionary.