Microsoft.UI.Xaml.Core.Direct Namespace
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece uma maneira para que os autores de middleware acessem APIs XAML de baixo nível e de alto desempenho e obtenham melhor desempenho de CPU e conjunto de trabalho.
Observação
Esse namespace requer o pacote NuGet Microsoft.UI.Xaml.Core.Direct , uma parte da Biblioteca de Interface do Usuário do Microsoft Windows.
Esta documentação se aplica ao WinUI 2 para UWP (para WinUI no SDK do Aplicativo Windows, consulte os namespaces SDK do Aplicativo Windows).
Classes
XamlDirect |
Representa a classe base para todas as APIs XamlDirect . Todas as APIs XamlDirect são métodos de instância dessa classe. O XamlDirect é uma API para acessar o Xaml em um nível mais primitivo para melhorar o desempenho da CPU e do conjunto de trabalho. Esta documentação se aplica ao WinUI 2 para UWP (para WinUI no SDK do Aplicativo Windows, consulte os namespaces SDK do Aplicativo Windows). |
Interfaces
IXamlDirect |
Representa a classe base para todas as APIs XamlDirect . Todas as APIs XamlDirect são métodos de instância dessa classe. O XamlDirect é uma API para acessar o Xaml em um nível mais primitivo para melhorar o desempenho da CPU e do conjunto de trabalho. Esta documentação se aplica ao WinUI 2 para UWP (para WinUI no SDK do Aplicativo Windows, consulte os namespaces SDK do Aplicativo Windows). |
Enumerações
XamlEventIndex |
Enumeração que lista todos os eventos com suporte no XamlDirect. Esta documentação se aplica ao WinUI 2 para UWP (para WinUI no SDK do Aplicativo Windows, consulte os namespaces SDK do Aplicativo Windows). |
XamlPropertyIndex |
Enumeração que lista todas as propriedades com suporte no XamlDirect. Esta documentação se aplica ao WinUI 2 para UWP (para WinUI no SDK do Aplicativo Windows, consulte os namespaces SDK do Aplicativo Windows). |
XamlTypeIndex |
Enumeração que lista todos os tipos com suporte no XamlDirect. Esta documentação se aplica ao WinUI 2 para UWP (para WinUI no SDK do Aplicativo Windows, consulte os namespaces SDK do Aplicativo Windows). |
Exemplos
Dica
Os aplicativos da Galeria do WinUI 3 e da Galeria do WinUI 2 incluem exemplos interativos da maioria dos controles, recursos e funcionalidade do WinUI 3 e do WinUI 2.
Se já estiverem instalado, abra-os clicando nos seguintes links: Galeria do WinUI 3 ou Galeria do WinUI 2.
Se eles não estiverem instalados, você poderá baixar a Galeria do WinUI 3 e a Galeria do WinUI 2 da Microsoft Store.
Você também pode obter o código-fonte para ambos do GitHub (use o branch main para WinUI 3 e o branch winui2 para WinUI 2).
O exemplo a seguir mostra como adicionar um valor a uma coleção usando APIs 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);
Comentários
XamlDirect é **purpose built for middleware*- that predominantemente use APIs imperativas para criar interface do usuário em vez de marcação. Com AS APIs XamlDirect , você pode obter paridade de desempenho com o analisador XAML mesmo ao criar a interface do usuário imperativamente no código.
XamlDirect As APIs podem ser usadas lado a lado com APIs tradicionais e aproveitar o pagamento por melhorias no desempenho do jogo.
Nem todas as APIs Xaml estão disponíveis com XamlDirect. A enumeração XamlTypeIndex lista todos os tipos com suporte, a enumeração XamlPropertyIndex lista todas as propriedades com suporte e a enumeração XamlEventIndex lista todos os eventos com suporte.
Funções suportadas
Você pode executar as seguintes funções usando APIs XamlDirect:
- Crie uma instância de um objeto Xaml interno para um tipo Xaml regular, como Button, usando Microsoft.UI.Xaml.Core.Direct.IXamlDirect.CreateInstance.
- Defina valores de propriedade usando uma das variantes apropriadas do método XamlDirect.Set-Property com base no tipo da propriedade. Por exemplo, use SetColorProperty(System.Object, Microsoft.UI.Xaml.Core.Direct.XamlPropertyIndex, Windows.UI.Color) para acessar a propriedade SolidColorBrush.Color . Da mesma forma, use Get-Property métodos para acessar propriedades específicas.
- Adicione um item a uma coleção, como Panel.Children, usando AddToCollection(System.Object, System.Object) e remova itens de coleções usando RemoveFromCollection(System.Object, System.Object) ou RemoveFromCollectionAt(System.Object, System.UInt32). O XamlDirect dá suporte a uma variedade dessas operações de coleção, incluindo GetCollectionCount(System.Object), ClearCollection(System.Object), InsertIntoCollectionAt(System.Object, System.UInt32,System.Object), RemoveFromCollectionAt(System.Object, System.UInt32) e GetXamlDirectObjectFromCollectionAt(System.Object,System.UInt32).
- Adicionar um manipulador de eventos, como Button.Click usando AddEventHandler(System.Object, Microsoft.UI.Xaml.Core.Direct.XamlEventIndex, System.Object) e remova de forma semelhante manipuladores de eventos usando Microsoft.UI.Xaml.Core.Direct.IXamlDirect.RemoveEventHandler(System.Object, Microsoft.UI.Xaml.Core.Direct.XamlEventIndex,System.Object).
Todos os objetos retornados por CreateInstance são do tipo IXamlDirect. Todas as outras APIs, como as APIs set*Property, tomam um IXamlDirect como seu primeiro parâmetro.
Para converter um IXamlDirect em seu APINDEX completo, por exemplo, um Botão, use o método GetObject(System.Object ). Da mesma forma, você pode usar GetXamlDirectObject para converter de um Objeto/DependencyObject completo para sua instância equivalente XamlDirect.