Share via


x:Subclass 指示詞

同時提供 時 x:Class ,修改 XAML 標記編譯行為。 而不是建立以 為基礎的 x:Class 部分類別,提供的 x:Class 會建立為中繼類別,然後您提供的衍生類別應該以 為基礎 x:Class

XAML Attribute Usage

<object x:Class="namespace.classname" x:Subclass="subclassNamespace.subclassName">
   ...
</object>

XAML 值

Description
namespace 選擇性。 指定包含 的 classname CLR 命名空間。 如果 namespace 指定了 ,則點 (.) 會 namespace 分隔 和 classname
classname 必要。 指定部分類別的 CLR 名稱,以連接已載入的 XAML 和該 XAML 的程式碼後置。 請參閱<備註>。
subclassNamespace 選擇性。 如果每個命名空間可以解析另一個命名空間,就可能不同 namespace 。 指定包含 的 subclassName CLR 命名空間。 如果 subclassName 指定了 ,則點 (.) 會 subclassNamespace 分隔 和 subclassName
subclassName 必要。 指定子類別的 CLR 名稱。

相依性

x:Class 指示詞 也必須在相同的物件上提供,而且該物件必須是 XAML 生產環境的根項目。

備註

x:Subclass usage 主要適用于不支援部分類別宣告的語言。

做為 x:Subclass 的類別不能是巢狀類別,而且 x:Subclass 必須參考根物件,如一節中所述。

否則,的概念意義 x:Subclass 是由 .NET XAML 服務實作所定義。 這是因為 .NET XAML 服務行為不會指定連接 XAML 標記和支援程式碼的整體程式設計模型。 與 和 x:Subclass 相關的 x:Class 進一步概念實作是由使用程式設計模型或應用程式模型來定義如何連接 XAML 標記、編譯標記和 CLR 型程式碼後置的特定架構所執行。 每個架構可能都有自己的建置動作,可啟用某些行為,或必須包含在建置環境中的特定元件。 在架構內,建置動作也會根據用於程式碼後置的特定 CLR 語言而有所不同。

WPF 使用方式注意事項

x:Subclass 可以位於頁面根目錄或 Application 應用程式定義中的根目錄上,其已經有 x:Classx:Subclass在頁面或應用程式根目錄以外的任何專案上宣告,或指定不存在的任何 x:Class 專案,會導致編譯時期錯誤。

建立適用于案例正確運作的 x:Subclass 衍生類別相當複雜。 您可能需要檢查中繼檔案 (標記編譯在專案的 obj 資料夾中產生的 .g 檔案,併入 .xaml 檔案名的名稱)。 這些中繼檔案可協助您判斷已編譯應用程式中聯結部分類別中特定程式設計建構的來源。

衍生類別中的事件處理常式必須是 internal overrideFriend Overrides 在 Microsoft Visual Basic 中),才能覆寫編譯期間在中繼類別中建立之處理常式的存根。 否則,衍生類別實作會隱藏中繼類別實作和中繼類別處理常式不會叫用 。

當您定義 x:Classx:Subclass 時,不需要為 所 x:Class 參考的類別提供任何實作。 您只需要透過 x:Class 屬性為它命名,讓編譯器有一些在中繼檔案中建立的類別指引(在此情況下,編譯器不會選取預設名稱)。 您可以為類別提供 x:Class 實作;不過,這不是使用 x:Classx:Subclass 的一般案例。

另請參閱