Microsoft.UI.Xaml.Core.Direct 命名空间
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为中间件作者提供了访问低级别高性能 XAML API 并实现更好的 CPU 和工作集性能的方法。
注意
此命名空间需要 Microsoft.UI.Xaml.Core.Direct NuGet 包( Microsoft Windows UI 库的一部分)。
本文档适用于 Windows 应用 SDK 中 WinUI 的 WinUI 2 for UWP (,请参阅Windows 应用 SDK命名空间) 。
类
XamlDirect |
表示所有 XamlDirect API 的基类。 所有 XamlDirect API 都是此类的实例方法。 XamlDirect 是一个 API,用于在更基元级别访问 Xaml,以提高 CPU 和工作集性能。 本文档适用于 Windows 应用 SDK 中 WinUI 的 WinUI 2 for UWP (,请参阅Windows 应用 SDK命名空间) 。 |
接口
IXamlDirect |
表示所有 XamlDirect API 的基类。 所有 XamlDirect API 都是此类的实例方法。 XamlDirect 是一个 API,用于在更基元级别访问 Xaml,以提高 CPU 和工作集性能。 本文档适用于 Windows 应用 SDK 中 WinUI 的 WinUI 2 for UWP (,请参阅Windows 应用 SDK命名空间) 。 |
枚举
XamlEventIndex |
列出 XamlDirect 中所有受支持的事件的枚举。 本文档适用于 Windows 应用 SDK 中 WinUI 的 WinUI 2 for UWP (,请参阅Windows 应用 SDK命名空间) 。 |
XamlPropertyIndex |
列出 XamlDirect 中所有受支持的属性的枚举。 本文档适用于 Windows 应用 SDK 中 WinUI 的 WinUI 2 for UWP (,请参阅Windows 应用 SDK命名空间) 。 |
XamlTypeIndex |
列出 XamlDirect 中所有支持类型的枚举。 本文档适用于 Windows 应用 SDK 中 WinUI 的 WinUI 2 for UWP (,请参阅Windows 应用 SDK命名空间) 。 |
示例
提示
WinUI 3 库和 WinUI 2 库应用包括大多数 WinUI 3 和 WinUI 2 控件、特性和功能的交互式示例。
如果已安装,请单击以下链接将其打开:WinUI 3 库或 WinUI 2 库。
如果未安装,可以从 Microsoft Store 下载 WinUI 3 库和 WinUI 2 库。
还可以从 GitHub 获取这两种应用的源代码(对 WinUI 3 使用 main 分支,对 WinUI 2 使用 winui2 分支)。
以下示例演示如何使用 XamlDirect API 向集合添加值。
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);
注解
XamlDirect 是为中间件构建的,它主要使用命令性 API 创建 UI 而不是标记。 使用 XamlDirect API,即使在代码中强制创建 UI 时,也可以实现与 XAML 分析程序的性能奇偶校验。
XamlDirect API 可与传统 API 并排使用,并利用付费来改进游戏性能。
并非所有 Xaml API 都可用于 XamlDirect。 XamlTypeIndex 枚举列出了所有受支持的类型,XamlPropertyIndex 枚举列出了所有支持的属性,XamlEventIndex 枚举列出了所有受支持的事件。
支持的函数
可以使用 XamlDirect API 执行以下函数:
- 使用 Microsoft.UI.Xaml.Core.Direct.IXamlDirect.CreateInstance 为常规 Xaml 类型(如 Button)创建内部 Xaml 对象的实例。
- 根据属性的类型使用 XamlDirect.Set-Property 方法的相应变体之一设置属性值。 例如,使用 SetColorProperty (System.Object、Microsoft.UI.Xaml.Core.Direct.XamlPropertyIndex、Windows.UI.Color) 访问 SolidColorBrush.Color 属性。 同样,使用Get-Property方法来访问特定属性。
- 使用 AddToCollection (System.Object、System.Object) 和使用 RemoveFromCollection (System.Object、System.Object) 或 RemoveFromCollectionAt (System.Object、System.UInt32) 从集合中添加项,如 Panel.Children。 XamlDirect 支持各种此类收集操作,包括 GetCollectionCount (System.Object) 、 ClearCollection (System.Object) 、 InsertIntoCollectionAt (System.Object、System.UInt32、System.对象) 、 RemoveFromCollectionAt (System.Object、System.UInt32) 和 GetXamlDirectObjectFromCollectionAt (System.Object、System.UInt32) 。
- 使用AddEventHandler (System.Object、Microsoft.UI.Xaml.Core.Direct.XamlEventIndex、System.Object) 和类似地使用 Microsoft.UI.Xaml.Core.Direct.IXamlDirect.RemoveEventHandler (System.Object、Microsoft.UI.Xaml.Core.Direct.XamlEventIndex、System.Object) 添加事件处理程序。
CreateInstance 返回的所有对象都是 IXamlDirect 类型。 所有其他 API(如 Set*Property API)采用 IXamlDirect 作为其第一个参数。
若要将 IXamlDirect 转换为其完整的 APINDEX(例如 Button),请使用 GetObject (System.Object) 方法。 同样,可以使用 GetXamlDirectObject 从完整对象/DependencyObject 转换为其 XamlDirect 等效实例。