共用方式為


x:Code XAML 指示詞項目

更新:2007 年 11 月

允許將程式碼放入 XAML 頁面,負責其編譯工作的是編譯而非解譯 XAML 的任何 XAML 處理器實作 (Implementation)。

XAML 物件項目使用方式

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

相依性

在語法中顯示為 object 的父項目上也必須提供 x:Class 屬性,而且該項目必須是頁面的根項目 (Root Element)。x:Code 指示詞項目必須是 object 根項目的直接子項目。

備註

x:Code XAML 指示詞項目內的程式碼仍然會在提供的 XML 命名空間內進行解譯。因此,您通常也必須將程式碼附加在 CDATA 區段的 x:Code 內。

XAML 檔案所有可能的部署機制全都不允許 x:Code。WPF 的程式碼還是必須進行編譯,但不會採用 Just-In-Time 的解譯或使用方式。例如,在任何 XML Paper Specification (XPS) 文件或鬆散的 XAML 中即不允許 x:Code。

您可透過用來編譯應用程式之包含專案的設定和目標,找出適用於 x:Code 內容的正確語言編譯器。

x:Code 內宣告的程式碼有幾項必須注意的限制。編譯必須將放在 x:Code 內的程式碼,視為包含在該 XAML 頁面已建立之部分類別的範圍內。因此,您定義的所有程式碼都必須是該部分類別的成員或變數。除了在部分類別內的巢狀類別 (這是合法的但不常見的狀況,因為 XAML 無法參考巢狀類別) 之外,您不能定義其他類別。除了現有部分類別所使用的命名空間以外,您也不能定義或加入至其他 CLR 命名空間。您必須完整限定部分類別 CLR 命名空間外部的程式碼實體參考。如果宣告的成員是部分類別可覆寫成員的覆寫項目,則必須使用語言特定覆寫關鍵字加以指定。如果成員與在 XAML 頁面外部建立的部分類別成員產生衝突,而導致編譯器回報這種衝突狀況,XAML 檔案便無法載入或進行編譯。

請參閱

概念

程式碼後置和 XAML

XAML 概觀

參考

x:Class 屬性