次の方法で共有


x:Code XAML ディレクティブ要素

更新 : 2007 年 11 月

コードを XAML ページの中に配置するときに使用します。このコードはインタープリタで処理されるのではなく、XAML をコンパイルする XAML プロセッサ実装によってコンパイルされます。

XAML オブジェクト要素の使用方法

<object>
<x:Code>
   // code instructions, usually enclosed by CDATA...
</x:Code>
</object>

依存関係

x:Class 属性も、構文で object として示されている親要素に対して指定されている必要があります。その要素はページのルート要素でなければなりません。x:Code ディレクティブ要素は、object ルート要素の直接の子要素でなければなりません。

解説

x:Code XAML ディレクティブ要素内のコードも、指定された XML 名前空間内で解釈されます。したがって、x:Code 内のコードを CDATA セグメントで囲むことも通常は必要です。

x:Code は、どの XAML ファイル配置機構でも使用できるとは限りません。WPF のコードはコンパイルが必要です。インタープリタで解釈されたり、ジャスト イン タイムで使用されたりするのではありません。たとえば、x:Code を XML Paper Specification (XPS) ドキュメント、つまり Loose XAML の中で使用することはできません。

x:Code コンテンツに対して使用される適切な言語コンパイラは、アプリケーションをコンパイルするために使用される格納元プロジェクトの設定とターゲットによって決定されます。

x:Code 内で宣言されるコードに関して、いくつかの制限事項があります。コンパイル時に、x:Code 内に配置されているコードは、その XAML ページに対して既に作成された部分クラスのスコープ内にあるものとして扱われます。このため、定義するすべてのコードは、その部分クラスのメンバまたは変数である必要があります。部分クラスの内側にクラスを入れ子にすること以外の方法で、追加クラスを定義することはできません (この方法は可能ですが、入れ子のクラスは XAML では参照できないので、一般的ではありません)。既存の部分クラスに対して使用されている名前空間以外の別の CLR 名前空間を定義したり追加したりすることはできません。部分クラスの CLR 名前空間の外側のコード エンティティに対する参照は、すべて完全修飾されている必要があります。宣言されるメンバが、部分クラスのオーバーライド可能なメンバに対するオーバーライドである場合は、言語固有のオーバーライド キーワードを使用してこのことを指定する必要があります。XAML ページから作成された部分クラスのメンバ間に、コンパイラから報告されるような競合がある場合は、XAML ファイルを読み込んだりコンパイルしたりすることはできません。

参照

概念

分離コードと XAML

XAML の概要

参照

x:Class 属性