Microsoft.UI.Xaml.Core.Direct 名前空間

ミドルウェア作成者が低レベルで高パフォーマンスの XAML API にアクセスし、CPU とワーキング セットのパフォーマンスを向上させる方法を提供します。

注意

この名前空間には、Microsoft Windows UI ライブラリの一部である Microsoft.UI.Xaml.Core.Direct NuGet パッケージが必要です。

このドキュメントは、UWP 用 WinUI 2 に適用されます (Windows アプリ SDKWinUI については、Windows アプリ SDK名前空間を参照してください)。

クラス

XamlDirect

すべての XamlDirect API の基本クラスを表します。 すべての XamlDirect API は、このクラスのインスタンス メソッドです。

XamlDirect は、CPU とワーキング セットのパフォーマンスを向上させるために、よりプリミティブ レベルで Xaml にアクセスするための API です。

このドキュメントは、UWP 用 WinUI 2 に適用されます (Windows アプリ SDKWinUI については、Windows アプリ SDK名前空間を参照してください)。

インターフェイス

IXamlDirect

すべての XamlDirect API の基本クラスを表します。 すべての XamlDirect API は、このクラスのインスタンス メソッドです。

XamlDirect は、CPU とワーキング セットのパフォーマンスを向上させるために、よりプリミティブ レベルで Xaml にアクセスするための API です。

このドキュメントは、UWP 用 WinUI 2 に適用されます (Windows アプリ SDKWinUI については、Windows アプリ SDK名前空間を参照してください)。

列挙型

XamlEventIndex

XamlDirect でサポートされているすべてのイベントを一覧表示する列挙型。

このドキュメントは、UWP 用 WinUI 2 に適用されます (Windows アプリ SDKWinUI については、Windows アプリ SDK名前空間を参照してください)。

XamlPropertyIndex

XamlDirect でサポートされているすべてのプロパティを一覧表示する列挙型。

このドキュメントは、UWP 用 WinUI 2 に適用されます (Windows アプリ SDKWinUI については、Windows アプリ SDK名前空間を参照してください)。

XamlTypeIndex

XamlDirect でサポートされているすべての型を一覧表示する列挙型。

このドキュメントは、UWP 用 WinUI 2 に適用されます (Windows アプリ SDKWinUI については、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 は**ミドルウェア*用に構築された目的です。マークアップの代わりに UI を作成するために命令型 API を主に使用します。 XamlDirect API を使用すると、コードで UI を命令的に作成する場合でも、XAML パーサーとのパフォーマンスパリティを実現できます。

XamlDirect API は、従来の API と並行して使用でき、プレイ パフォーマンスの向上に対する支払いを利用できます。

すべての Xaml API が XamlDirect で使用できるわけではありません。 XamlTypeIndex 列挙型には、サポートされているすべての型が一覧表示され、XamlPropertyIndex 列挙型にはサポートされているすべてのプロパティが一覧表示され、XamlEventIndex 列挙型にはサポートされているすべてのイベントが一覧表示されます。

サポートされる関数

XamlDirect API を使用して、次の関数を実行できます。

CreateInstance によって返されるすべてのオブジェクトは、IXamlDirect 型です。 Set*Property API などの他のすべての API は、最初のパラメーターとして IXamlDirect を受け取ります。

IXamlDirect を完全な APINDEX (Button など) に変換するには、GetObject(System.Object) メソッドを使用します。 同様に、 GetXamlDirectObject を使用して、完全な Object/DependencyObject から XamlDirect 同等のインスタンスに変換できます。

こちらもご覧ください