Microsoft.UI.Xaml.Core.Direct Spazio dei nomi
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.
Offre un modo per gli autori di middleware di accedere alle API XAML a basso livello e ad alte prestazioni e ottenere prestazioni migliori per cpu e set di lavoro.
Nota
Questo spazio dei nomi richiede il pacchetto NuGet Microsoft.UI.Xaml.Core.Direct , una parte della libreria dell'interfaccia utente di Microsoft Windows.
Questa documentazione si applica a WinUI 2 per UWP (per WinUI nella SDK per app di Windows, vedere gli spazi dei nomi SDK per app di Windows).
Classi
XamlDirect |
Rappresenta la classe di base per tutte le API XamlDirect . Tutte le API XamlDirect sono metodi di istanza di questa classe. XamlDirect è un'API per l'accesso a Xaml a un livello più primitivo per migliorare le prestazioni del set di CPU e di funzionamento. Questa documentazione si applica a WinUI 2 per UWP (per WinUI nella SDK per app di Windows, vedere gli spazi dei nomi SDK per app di Windows). |
Interfacce
IXamlDirect |
Rappresenta la classe di base per tutte le API XamlDirect . Tutte le API XamlDirect sono metodi di istanza di questa classe. XamlDirect è un'API per l'accesso a Xaml a un livello più primitivo per migliorare le prestazioni del set di CPU e di funzionamento. Questa documentazione si applica a WinUI 2 per UWP (per WinUI nella SDK per app di Windows, vedere gli spazi dei nomi SDK per app di Windows). |
Enumerazioni
XamlEventIndex |
Enumerazione che elenca tutti gli eventi supportati in XamlDirect. Questa documentazione si applica a WinUI 2 per UWP (per WinUI nella SDK per app di Windows, vedere gli spazi dei nomi SDK per app di Windows). |
XamlPropertyIndex |
Enumerazione che elenca tutte le proprietà supportate in XamlDirect. Questa documentazione si applica a WinUI 2 per UWP (per WinUI nella SDK per app di Windows, vedere gli spazi dei nomi SDK per app di Windows). |
XamlTypeIndex |
Enumerazione che elenca tutti i tipi supportati in XamlDirect. Questa documentazione si applica a WinUI 2 per UWP (per WinUI nella SDK per app di Windows, vedere gli spazi dei nomi SDK per app di Windows). |
Esempio
Suggerimento
Le app WinUI 3 Gallery e WinUI 2 Gallery includono esempi interattivi della maggior parte dei controlli WinUI 3 e WinUI 2, delle funzionalità e delle funzionalità.
Se è già installato, aprirli facendo clic sui collegamenti seguenti: WinUI 3 Gallery o WinUI 2 Gallery.
Se non sono installati, è possibile scaricare la raccolta WinUI 3 e la raccolta WinUI 2 da Microsoft Store.
È anche possibile ottenere il codice sorgente per GitHub (usare il ramo principale per WinUI 3 e il ramo winui2 per WinUI 2).
Nell'esempio seguente viene illustrato come aggiungere un valore a una raccolta usando le API XamlDirect .
XamlDirect xd = XamlDirect.GetDefault();
IXamlDirect relativePanel = xd.CreateInstance(XamlTypeIndex.RelativePanel);
IXamlDirect childrenCollection = xd.GetXamlDirectObjectProperty(relativePanel, XamlPropertyIndex.Panel_Children);
IXamlDirect button = xd.CreateInstance(XamlTypeIndex.Button);
xd.AddToCollection(childrenCollection, button);
XamlDirect^ xd = XamlDirect::GetDefault();
IXamlDirect^ relativePanel = xd->CreateInstance(XamlTypeIndex::RelativePanel);
IXamlDirect^ childrenCollection = xd->GetXamlDirectObjectProperty(relativePanel, XamlPropertyIndex::Panel_Children);
IXamlDirect^ button = xd->CreateInstance(XamlTypeIndex::Button);
xd->AddToCollection(childrenCollection, button);
Commenti
XamlDirect è **scopo compilato per middleware*- che usano principalmente LE API imperative per creare l'interfaccia utente anziché il markup. Con le API XamlDirect è possibile ottenere la parità delle prestazioni con il parser XAML anche quando si crea l'interfaccia utente in modo imperativo nel codice.
XamlDirect Le API possono essere usate side-by-side con le API tradizionali e sfruttare il pagamento per i miglioramenti delle prestazioni di riproduzione.
Non tutte le API Xaml sono disponibili con XamlDirect. L'enumerazione XamlTypeIndex elenca tutti i tipi supportati, l'enumerazione XamlPropertyIndex elenca tutte le proprietà supportate e l'enumerazione XamlEventIndex elenca tutti gli eventi supportati.
Funzioni supportate
È possibile eseguire le funzioni seguenti usando le API XamlDirect:
- Creare un'istanza di un oggetto Xaml interno per un tipo Xaml normale, ad esempio Button, usando Microsoft.UI.Xaml.Core.Direct.IXamlDirect.CreateInstance.
- Impostare i valori delle proprietà usando una delle varianti appropriate del metodo XamlDirect.Set-Property in base al tipo della proprietà. Ad esempio, usare SetColorProperty(System.Object,Microsoft.UI.Xaml.Core.Direct.XamlPropertyIndex,Windows.UI.Color) per accedere alla proprietà SolidColorBrush.Color . Analogamente, usare metodi Get-Property per accedere a proprietà specifiche.
- Aggiungere un elemento a una raccolta, ad esempio Panel.Children, usando AddToCollection(System.Object,System.Object) e rimuovere elementi dalle raccolte usando RemoveFromCollection(System.Object,System.Object) o RemoveFromCollectionAt(System.Object,System.UInt32). XamlDirect supporta un'ampia gamma di operazioni di raccolta, tra cui GetCollectionCount(System.Object), ClearCollection(System.Object), InsertIntoCollectionAt(System.Object,System.UInt32,System.Object), RemoveFromCollectionAt(System.Object, System.UInt32) e GetXamlDirectObjectFromCollectionAt(System.Object,System.UInt32).
- Aggiungere un gestore eventi, ad esempio Button.Click usando AddEventHandler(System.Object,Microsoft.UI.Xaml.Core.Direct.XamlEventIndex,System.Object) e rimuovere in modo analogo gestori eventi usando Microsoft.UI.Core.Direct.IXamlDirect.RemoveEventHandler(System.Object,Microsoft.UI.Xaml.Core.XamlEventIndex,System.Object).
Tutti gli oggetti restituiti da CreateInstance sono di tipo IXamlDirect. Tutte le altre API, ad esempio le API Set*Property, accettano un IXamlDirect come primo parametro.
Per convertire un oggetto IXamlDirect nel relativo APINDEX completo, ad esempio un Button, usare il metodo GetObject(System.Object). Analogamente, è possibile usare GetXamlDirectObject per convertire da un oggetto/dependencyObject completo all'istanza equivalente xamlDirect.