Microsoft.UI.Xaml.Core.Direct 名前空間
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ミドルウェア作成者が低レベルで高パフォーマンスの XAML API にアクセスし、CPU とワーキング セットのパフォーマンスを向上させる方法を提供します。
注意
この名前空間には、Microsoft Windows UI ライブラリの一部である Microsoft.UI.Xaml.Core.Direct NuGet パッケージが必要です。
このドキュメントは、UWP 用 WinUI 2 に適用されます (Windows アプリ SDKの WinUI については、Windows アプリ SDK名前空間を参照してください)。
クラス
XamlDirect |
すべての XamlDirect API の基本クラスを表します。 すべての XamlDirect API は、このクラスのインスタンス メソッドです。 XamlDirect は、CPU とワーキング セットのパフォーマンスを向上させるために、よりプリミティブ レベルで Xaml にアクセスするための API です。 このドキュメントは、UWP 用 WinUI 2 に適用されます (Windows アプリ SDKの WinUI については、Windows アプリ SDK名前空間を参照してください)。 |
インターフェイス
IXamlDirect |
すべての XamlDirect API の基本クラスを表します。 すべての XamlDirect API は、このクラスのインスタンス メソッドです。 XamlDirect は、CPU とワーキング セットのパフォーマンスを向上させるために、よりプリミティブ レベルで Xaml にアクセスするための API です。 このドキュメントは、UWP 用 WinUI 2 に適用されます (Windows アプリ SDKの WinUI については、Windows アプリ SDK名前空間を参照してください)。 |
列挙型
XamlEventIndex |
XamlDirect でサポートされているすべてのイベントを一覧表示する列挙型。 このドキュメントは、UWP 用 WinUI 2 に適用されます (Windows アプリ SDKの WinUI については、Windows アプリ SDK名前空間を参照してください)。 |
XamlPropertyIndex |
XamlDirect でサポートされているすべてのプロパティを一覧表示する列挙型。 このドキュメントは、UWP 用 WinUI 2 に適用されます (Windows アプリ SDKの WinUI については、Windows アプリ SDK名前空間を参照してください)。 |
XamlTypeIndex |
XamlDirect でサポートされているすべての型を一覧表示する列挙型。 このドキュメントは、UWP 用 WinUI 2 に適用されます (Windows アプリ SDKの WinUI については、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 を使用して、次の関数を実行できます。
- Microsoft.UI.Xaml.Core.Direct.IXamlDirect.CreateInstance を使用して、Button などの通常の Xaml 型の内部 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) を使用して 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.Object)、 RemoveFromCollectionAt(System.Object、System.UInt32)、 GetXamlDirectObjectFromCollectionAt(System.Object,System.UInt32)など、さまざまなコレクション操作がサポートされています。
- AddEventHandler(System.Object,Microsoft.UI.Xaml.Core.Direct.XamlEventIndex,System.Object) を使用して Button.Click などのイベント ハンドラーを追加し、同様に Microsoft.UI.Xaml.Core.Direct.IXamlDirect.RemoveEventHandler(System.Object,Microsoft.UI.Xaml.Core.Direct.XamlEventIndex,System.Object) を使用してイベント ハンドラーを削除します。
CreateInstance によって返されるすべてのオブジェクトは、IXamlDirect 型です。 Set*Property API などの他のすべての API は、最初のパラメーターとして IXamlDirect を受け取ります。
IXamlDirect を完全な APINDEX (Button など) に変換するには、GetObject(System.Object) メソッドを使用します。 同様に、 GetXamlDirectObject を使用して、完全な Object/DependencyObject から XamlDirect 同等のインスタンスに変換できます。