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 的主要 分支和 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 類型建立內部 Xaml 物件的實例,例如Button。
- 使用 XamlDirect.Set-Property 方法的其中一個適當變體,根據屬性的類型來設定屬性值。 例如,使用 SetColorProperty (System.Object、Microsoft.UI.Xaml.Core.Direct.XamlPropertyIndex、Windows.UI.Color) 來存取 SolidColorBrush.Color 屬性。 同樣地,請使用Get-Property方法來存取特定屬性。
- 使用AddToCollection (System.Object,System.Object) 將專案新增至Panel.Children等集合,並使用RemoveFromCollection (System.Object、System.Object) 或RemoveFromCollectionAt (System.Object,System.UInt32) 從集合中移除專案。 XamlDirect 支援各種這類收集作業,包括 GetCollectionCount (System.Object) 、 ClearCollection (System.Object) 、 InsertIntoCollectionAt (System.Object、System.UInt32、System.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 ,從完整的 Object/DependencyObject 轉換為其 XamlDirect 對等實例。