Microsoft.UI.Xaml.Core.Direct Espacio de nombres
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona una manera de que los autores de middleware accedan a las API XAML de bajo nivel y alto rendimiento y logren un mejor rendimiento de CPU y conjuntos de trabajo.
Nota
Este espacio de nombres requiere el paquete NuGet Microsoft.UI.Xaml.Core.Direct , una parte de la biblioteca de interfaz de usuario de Microsoft Windows.
Esta documentación se aplica a WinUI 2 para UWP (para WinUI en la SDK de Aplicaciones para Windows, consulta los espacios de nombres SDK de Aplicaciones para Windows).
Clases
XamlDirect |
Representa la clase base para todas las API de XamlDirect . Todas las API de XamlDirect son métodos de instancia de esta clase. XamlDirect es una API para acceder a Xaml en un nivel más primitivo para mejorar el rendimiento de la CPU y del conjunto de trabajo. Esta documentación se aplica a WinUI 2 para UWP (para WinUI en la SDK de Aplicaciones para Windows, consulta los espacios de nombres SDK de Aplicaciones para Windows). |
Interfaces
IXamlDirect |
Representa la clase base para todas las API de XamlDirect . Todas las API de XamlDirect son métodos de instancia de esta clase. XamlDirect es una API para acceder a Xaml en un nivel más primitivo para mejorar el rendimiento de la CPU y del conjunto de trabajo. Esta documentación se aplica a WinUI 2 para UWP (para WinUI en la SDK de Aplicaciones para Windows, consulta los espacios de nombres SDK de Aplicaciones para Windows). |
Enumeraciones
XamlEventIndex |
Enumeración que enumera todos los eventos admitidos en XamlDirect. Esta documentación se aplica a WinUI 2 para UWP (para WinUI en la SDK de Aplicaciones para Windows, consulta los espacios de nombres SDK de Aplicaciones para Windows). |
XamlPropertyIndex |
Enumeración que enumera todas las propiedades admitidas en XamlDirect. Esta documentación se aplica a WinUI 2 para UWP (para WinUI en la SDK de Aplicaciones para Windows, consulta los espacios de nombres SDK de Aplicaciones para Windows). |
XamlTypeIndex |
Enumeración que enumera todos los tipos admitidos en XamlDirect. Esta documentación se aplica a WinUI 2 para UWP (para WinUI en la SDK de Aplicaciones para Windows, consulta los espacios de nombres SDK de Aplicaciones para Windows). |
Ejemplos
Sugerencia
Las aplicaciones WinUI 3 Gallery y WinUI 2 Gallery incluyen ejemplos interactivos de la mayoría de los controles, características y funcionalidades de WinUI 3 y WinUI 2.
Si ya se instalaron, haga clic en los vínculos siguientes para abrirlas: WinUI 3 Gallery o WinUI 2 Gallery.
Si no están instaladas, puede descargar WinUI 3 Gallery y WinUI 2 Gallery desde Microsoft Store.
También puede obtener el código fuente de ambas desde GitHub (use la bifurcación principal para WinUI 3 y la bifurcación winui2 para WinUI 2).
En el ejemplo siguiente se muestra cómo agregar un valor a una colección mediante las API de 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);
Comentarios
XamlDirect es **propósito creado para middleware*- que principalmente usan API imperativas para crear la interfaz de usuario en lugar del marcado. Con las API de XamlDirect , puedes lograr paridad de rendimiento con el analizador XAML incluso al crear la interfaz de usuario de forma imperativa en el código.
XamlDirect Las API se pueden usar en paralelo con las API tradicionales y aprovechar las mejoras de rendimiento de pago por juego.
No todas las API xaml están disponibles con XamlDirect. La enumeración XamlTypeIndex enumera todos los tipos admitidos, la enumeración XamlPropertyIndex enumera todas las propiedades admitidas y la enumeración XamlEventIndex enumera todos los eventos admitidos.
Funciones admitidas
Puede realizar las siguientes funciones mediante las API xamlDirect:
- Cree una instancia de un objeto Xaml interno para un tipo Xaml normal, como Button, con Microsoft.UI.Xaml.Core.Direct.IXamlDirect.CreateInstance.
- Establezca valores de propiedad mediante una de las variantes adecuadas del método XamlDirect.Set-Property en función del tipo de la propiedad. Por ejemplo, use SetColorProperty(System.Object,Microsoft.UI.Xaml.Core.Direct.XamlPropertyIndex,Windows.UI.Color) para tener acceso a la propiedad SolidColorBrush.Color . De forma similar, use métodos Get-Property para acceder a propiedades específicas.
- Agregue un elemento a una colección, como Panel.Children, mediante AddToCollection(System.Object,System.Object) y quite elementos de colecciones mediante RemoveFromCollection(System.Object,System.Object) o RemoveFromCollectionAt(System.Object,System.UInt32). XamlDirect admite diversas operaciones de colección como GetCollectionCount(System.Object), ClearCollection(System.Object), InsertIntoCollectionAt(System.Object,System.UInt32,System.Object), RemoveFromCollectionAt(System.Object,System.UInt32) y GetXamlDirectObjectFromCollectionAt(System.Object,System.UInt32).
- Agregue un controlador de eventos, como Button.Click mediante AddEventHandler(System.Object,Microsoft.UI.Xaml.Core.Direct.XamlEventIndex,System.Object) y quite de forma similar controladores de eventos mediante Microsoft.UI.Xaml.Core.Direct.IXamlDirect.RemoveEventHandler(System.Object,Microsoft.UI.Xaml.Core.Direct.XamlEventIndex,System.Object).
Todos los objetos devueltos por CreateInstance son de tipo IXamlDirect. Todas las demás API, como las API Set*Property, toman IXamlDirect como su primer parámetro.
Para convertir un IXamlDirect en su APINDEX completo, por ejemplo, un Button, use el método GetObject(System.Object). Del mismo modo, puedes usar GetXamlDirectObject para convertir de un object/DependencyObject completo a su instancia equivalente de XamlDirect.