次の方法で共有


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 ファイルをコンパイルまたは読み込むことはできません。

関連項目