Condividi tramite


CustomXamlResourceLoader Classe

Definizione

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à
Object IInspectable CustomXamlResourceLoader
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:

  1. Deriva una classe personalizzata da CustomXamlResourceLoader ed esegui l’override del metodo GetResource. Non chiamare la classe base nell'implementazione.
  2. 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.
  3. 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.

Si applica a

Vedi anche