CustomXamlResourceLoader Classe
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.
Abilita il caricamento dei dizionari risorse personalizzati come origini. Eseguire l'override di GetResource per fornire la logica che un parser XAML può usare per cercare le risorse necessarie in fase di caricamento.
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CustomXamlResourceLoader
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class CustomXamlResourceLoader
Public Class CustomXamlResourceLoader
- Ereditarietà
- Attributi
Requisiti Windows
Famiglia di dispositivi |
Windows 10 (è stato introdotto in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)
|
Commenti
CustomXamlResourceLoader supporta l'utilizzo di un'estensione {CustomResource}
di markup. Questa estensione di markup è univoca per il framework XAML Windows Runtime (non esisteva nelle tecnologie XAML precursori, ad esempio Windows Presentation Foundation (WPF) e Microsoft Silverlight.
I riferimenti {CustomResource}
non funzionano per impostazione predefinita (l’implementazione di base di GetResource è incompleta). Per creare un riferimento {CustomResource}
valido, devi eseguire questi passaggi:
- Deriva una classe personalizzata da CustomXamlResourceLoader ed esegui l’override del metodo GetResource. Non chiamare la classe base nell'implementazione.
- Imposta CustomXamlResourceLoader.Current in modo da fare riferimento alla tua classe nella logica di inizializzazione. Questa operazione deve essere eseguita prima del caricamento di qualsiasi codice XAML a livello di pagina che prevede l’utilizzo dell’estensione
{CustomResource}
. CustomXamlResourceLoader.Current può essere impostato ad esempio nel costruttore della sottoclasseApplication generato nei modelli code-behind di App.xaml. - A questo punto puoi usare le estensioni
{CustomResource}
nel codice XAML caricato dall’app sotto forma di pagina o dai dizionari risorse XAML.
L'estensione di markup {CustomResource} può essere usata da XAML in modo analogo all'estensione di markup {StaticResource}, che esegue la ricerca delle risorse predefinita da varie posizioni resourceDictionary . La differenza è che l'app stessa implementa la logica di ricerca delle risorse per l'utilizzo di un'estensione di markup {CustomResource} fornendo un caricatore di risorse personalizzato. Per implementare il caricatore di risorse personalizzato, l'applicazione deve fornire una classe che deriva da CustomXamlResourceLoader ed eseguire l'override del metodo GetResource . L'app deve registrare il caricatore di risorse personalizzato impostando la proprietà statica CustomXamlResourceLoader.Current su un'istanza della classe del caricatore di risorse personalizzata. Questa registrazione deve essere eseguita su un thread dell'interfaccia utente XAML prima di qualsiasi analisi di XAML che usa l'estensione di markup {CustomResource}. Se l'applicazione usa più thread dell'interfaccia utente, è necessario eseguire una registrazione separata in ogni thread.
Il modo in cui CustomXamlResourceLoader archivia le risorse probabilmente non è correlato a ResourceDictionary . In genere, oltre alle sostituzioni necessarie, la classe CustomXamlResourceLoader fornisce metodi interni o pubblici che consentono l'archiviazione, la chiave e l'uso degli elementi delle risorse in una raccolta sottostante.
Costruttori
CustomXamlResourceLoader() |
Inizializza una nuova istanza della classe CustomXamlResourceLoader . |
Proprietà
Current |
Restituisce l'istanza customXamlResourceLoader attiva. |
Metodi
GetResource(String, String, String, String) |
In caso di override in una classe derivata, specifica la logica di ricerca della risorsa per customXamlResourceLoader. Dato un ID risorsa e alcune informazioni sul tipo sul risultato previsto, restituisce la risorsa richiesta. |