Windows.UI.Xaml.Core.Direct Espace de noms
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit des API XamlDirect qui permettent aux intergiciels d’accéder à la plupart du xaml à un niveau plus primitif, ce qui permet d’obtenir de meilleures performances de processeur et de jeu de travail.
Classes
XamlDirect |
Représente la classe de base pour toutes les API XamlDirect. Toutes les API XamlDirect sont instance méthodes de cette classe. XamlDirect est une API permettant d’accéder à Xaml à un niveau plus primitif pour de meilleures performances de l’UC et des ensembles de travail. API WinUI 2 équivalente pour UWP : Microsoft.UI.Xaml.Core.Direct.XamlDirect (pour WinUI dans le SDK d'application Windows, consultez les espaces de noms SDK d'application Windows). |
Interfaces
IXamlDirectObject |
Représente le type d’objet principal qui participe au jeu d’API XamlDirect . |
Énumérations
XamlEventIndex |
Énumération qui répertorie tous les événements pris en charge dans XamlDirect. API WinUI 2 équivalente pour UWP : Microsoft.UI.Xaml.Core.Direct.XamlEventIndex (pour WinUI dans le SDK d'application Windows, consultez les espaces de noms SDK d'application Windows). |
XamlPropertyIndex |
Énumération qui répertorie toutes les propriétés prises en charge dans XamlDirect. API WinUI 2 équivalente pour UWP : Microsoft.UI.Xaml.Core.Direct.XamlPropertyIndex (pour WinUI dans le SDK d'application Windows, consultez les espaces de noms SDK d'application Windows). |
XamlTypeIndex |
Énumération qui répertorie tous les types pris en charge dans XamlDirect. API WinUI 2 équivalente pour UWP : Microsoft.UI.Xaml.Core.Direct.XamlTypeIndex (pour WinUI dans le SDK d'application Windows, consultez les espaces de noms SDK d'application Windows). |
Exemples
Cet exemple montre comment créer des objets, définir des propriétés et interfacer avec des uiElements standard de 3 façons : à l’aide du balisage XAML, à l’aide de types XAML standard en C# et de la nouvelle façon d’utiliser les API XamlDirect .
Dans cet exemple, nous créons un élément Border et un élément Rectangle et nous définissons quelques propriétés sur chacun d’eux. Ensuite, nous les ajoutons à l’arborescence des éléments d’interface utilisateur.
- Utilisation du balisage XAML :
<Grid x:Name="RootGrid">
<Border BorderBrush="Black" BorderThickness="5">
<Rectangle Height="100" Width="100" Fill="Red" />
</Border>
</Grid>
- Utilisation de code impératif standard, avec des types XAML complets :
Border border = new Border();
border.BorderBrush = new SolidColorBrush(Colors.Black);
border.BorderThickness = new Thickness(5);
Rectangle rectangle = new Rectangle();
rectangle.Height = 100;
rectangle.Width = 100;
SolidColorBrush rectBrush = new SolidColorBrush(Colors.Red);
rectangle.Fill = rectBrush;
border.Child = rectangle;
RootGrid.Children.Add(border);
- Utilisation du code XamlDirect :
Le code suivant aura des performances supérieures à l’utilisation de types XAML complets, car toutes les opérations telles que l’instanciation et la définition de propriétés sur différents éléments sont effectuées via IXamlDirectObjects au lieu des types XAML complets.
XamlDirect xamlDirect = XamlDirect.GetDefault();
IXamlDirectObject border = XamlDirect.CreateInstance(XamlTypeIndex.Border);
xamlDirect.SetThicknessProperty(border, XamlPropertyIndex.Border_BorderThickness, new Thickness(5));
IXamlDirectObject borderBrush = XamlDirect.CreateInstance(XamlTypeIndex.SolidColorBrush);
xamlDirect.SetColorProperty(borderBrush, XamlPropertyIndex.SolidColorBrush_Color, Colors.Black);
xamlDirect.SetXamlDirectObjectProperty(border, XamlPropertyIndex.Border_BorderBrush, borderBrush);
IXamlDirectObject rectangle = XamlDirect.CreateInstance(XamlTypeIndex.Rectangle);
xamlDirect.SetDoubleProperty(rectangle, XamlPropertyIndex.FrameworkElement_Width, 100);
xamlDirect.SetDoubleProperty(rectangle, XamlPropertyIndex.FrameworkElement_Height, 100);
IXamlDirectObject rectBrush = XamlDirect.CreateInstance(XamlTypeIndex.SolidColorBrush);
xamlDirect.SetColorProperty(rectBrush, XamlPropertyIndex.SolidColorBrush_Color, Colors.Red);
xamlDirect.SetXamlDirectObjectProperty(rectangle, XamlPropertyIndex.Shape_Fill, rectangleBrush);
xamlDirect.SetXamlDirectObjectProperty(border, XamlPropertyIndex.Border_Child, rectangle);
RootGrid.Children.Add((UIElement) XamlDirect.GetObject(border));
Remarques
XamlDirect est spécialement conçu pour les intergiciels qui utilisent principalement des API impératives pour créer l’interface utilisateur au lieu du balisage. Avec les API XamlDirect , vous pouvez obtenir une parité de performances avec l’analyseur XAML, même lors de la création impérative de l’interface utilisateur dans le code.
XamlDirect Les API peuvent être utilisées côte à côte avec les API traditionnelles et tirer parti des améliorations des performances de jeu payantes.
Toutes les API Xaml ne sont pas disponibles avec XamlDirect. L’énumération XamlTypeIndex répertorie tous les types pris en charge, l’énumération XamlPropertyIndex répertorie toutes les propriétés prises en charge et l’énumération XamlEventIndex répertorie tous les événements pris en charge.
Fonctions prises en charge
Vous pouvez effectuer les fonctions suivantes à l’aide des API XamlDirect :
- Créez une instance d’un objet Xaml interne pour un type Xaml standard, comme Button, à l’aide de XamlDirect.CreateInstance.
- Définissez des valeurs de propriété à l’aide de l’une des variantes appropriées de la méthode XamlDirect.Set-Property en fonction du type de la propriété. Par exemple, utilisez XamlDirect.SetColorProperty dans la propriété SolidColorBrush.Color . De même, utilisez des méthodes Get-Property pour accéder à des propriétés spécifiques.
- Ajoutez un élément à une collection, comme Panel.Children, à l’aide de XamlDirect.AddToCollection et supprimez des éléments des collections à l’aide de XamlDirect.RemoveFromCollection. XamlDirect prend en charge diverses opérations de collection telles que GetCollectionCount, ClearCollection, InsertIntoCollectionAt, RemoveFromCollectionAt et GetXamlDirectObjectFromCollectionAt.
- Ajoutez un gestionnaire d’événements, comme Button.Click à l’aide de XamlDirect.AddEventHandler et supprimez de la même façon les gestionnaires d’événements à l’aide de XamlDirect.RemoveEventHandler.
Tous les objets retournés par XamlDirect.CreateInstance sont de type IXamlDirectObject. Toutes les autres API, telles que les API Set*Property, prennent un IXamlDirectObject comme premier paramètre.
Pour convertir un IXamlDirectObject en APINDEX complet, par exemple un Button, utilisez la méthode XamlDirect.GetObject . De même, vous pouvez utiliser XamlDirect.GetXamlDirectObject pour convertir un Objet/DependencyObject complet en son instance XamlDirect équivalent.