x:Code 組み込み XAML 型
XAML 運用環境内でのコードの配置を許可します。 このようなコードは、XAML をコンパイルする任意の XAML プロセッサ実装によってコンパイルすることも、ランタイムによる解釈など、後で使用するために XAML 運用環境に残すこともできます。
XAML オブジェクト要素の使用法
<x:Code>
// code instructions, usually enclosed by CDATA...
</x:Code>
備考
x:Code
XAML ディレクティブ要素内のコードは、引き続き、一般的な XML 名前空間と指定された XAML 名前空間内で解釈されます。 そのため、通常は、x:Code
に使用されるコードを CDATA
セグメント内で囲む必要があります。
x:Code
は、XAML 運用のすべての可能なデプロイ メカニズムでは許可されません。 特定のフレームワーク (WPF など) では、コードをコンパイルする必要があります。 他のフレームワークでは、通常、x:Code
の使用が許可されていない可能性があります。
マネージド x:Code
コンテンツを許可するフレームワークの場合、x:Code
コンテンツに使用する適切な言語コンパイラは、アプリケーションのコンパイルに使用される包含プロジェクトの設定とターゲットによって決まります。
WPF の使用に関する注意事項
WPF の x:Code
内で宣言されたコードには、いくつかの注目すべき制限があります。
x:Code
ディレクティブ要素は、XAML 運用環境のルート要素の直接の子要素である必要があります。x:Class ディレクティブ は、親ルート要素に指定する必要があります。
x:Code
内に配置されたコードは、コンパイルによって処理され、その XAML ページ用に既に作成されている部分クラスのスコープ内に配置されます。 したがって、定義するすべてのコードは、その部分クラスのメンバーまたは変数である必要があります。部分クラス内でクラスを入れ子にする以外に、追加のクラスを定義することはできません (入れ子にすることは許可されていますが、入れ子になったクラスは XAML で参照できないため、一般的ではありません)。 既存の部分クラスに使用される名前空間以外の CLR 名前空間を定義または追加することはできません。
部分クラス CLR 名前空間の外部にあるコード エンティティへの参照はすべて完全修飾である必要があります。 宣言されているメンバーが、部分クラスのオーバーライド可能なメンバーのオーバーライドである場合は、言語固有の override キーワードを使用して指定する必要があります。
x:Code
スコープで宣言されたメンバーが、XAML から作成された部分クラスのメンバーと競合する場合、コンパイラが競合を報告する方法で、XAML ファイルをコンパイルまたは読み込むことはできません。
関連項目
- x:Class ディレクティブ
- WPF での
Code-Behind と XAML - XAML の概要 (WPF .NET)
.NET Desktop feedback