Share via


XAML 命名空間和命名空間對應

更新:2007 年 11 月

您可以在每個可延伸標記語言 (XAML) 檔案的根標記中找到兩個 XML 命名空間對應;本主題將進一步說明這兩個命名空間對應的存在和用途。此外,本文也將說明如何使用您自己的程式碼中定義的項目,以及/或個別組件 (Assembly) 內的項目,產生類似的對應。

這個主題包含下列章節。

  • WPF 和 XAML 命名空間宣告
  • 對應至自訂類別和組件
  • 在組件中將 CLR 命名空間對應至 XML 命名空間
  • 相關主題

WPF 和 XAML 命名空間宣告

在許多可延伸標記語言 (XAML) 檔案之根標記中的命名空間宣告內,您會看到兩個 XML 命名空間宣告。第一個宣告將整個 Windows Presentation Foundation (WPF) 命名空間對應為預設值:

xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"

第二個宣告對應個別的可延伸標記語言 (XAML) 命名空間,而且 (通常會) 將它對應到 x: 前置字元。

xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"

這些宣告彼此間的關聯性 (Relationship) 在於 XAML 實際上是一種語言定義,而 WPF 則是使用 XAML 做為語言的一項實作。XAML 語言指定某些為了相容而應該實作的語言項目,而且每個語言項目應該都可以透過針對 XAML 命名空間運作的 XAML 處理器實作加以存取。WPF 實作與其應用的程式設計模型,通常會為自己的 API 使用預設 XML 命名空間,並在 XAML 所需的標記語法中使用個別的對應前置字元。根據慣例,該前置字元為 x:,而且這個 SDK 內的專案範本、範例程式碼和語言功能的文件,也都遵照此相同的 x: 慣例。XAML 命名空間定義了許多常用的功能,甚至包括基礎 WPF 應用程式需要的功能。例如,為了透過部分類別將任何程式碼後置 (Code-Behind) 聯結到 XAML 檔案,您必須在相關 XAML 檔案的根項目 (Root Element) 中,將該類別命名為 x:Class 屬性 (Attribute)。或者,若您想存取 XAML 頁面中定義的任何項目以做為有索引鍵的資源,則應該在相關的項目上設定 x:Key 屬性。如需 XAML 這些面向和其他面向的詳細資訊,請參閱 XAML 概觀XAML 語法術語

對應至自訂類別和組件

您可以使用 xmlns 前置字元宣告內的一系列語彙基元 (Token),將 XML 命名空間對應至組件,使用的方法與標準 WPF 和 XAML 命名空間對應至前置字元的方式類似。

此語法接受下列可能的具名語彙基元和下列值:

clr-namespace::組件內宣告的 Common Language Runtime (CLR) 命名空間,其中包含要公開為項目的公用型別。

assembly=:包含部分或所有參考之 CLR 命名空間的組件。這個值通常只是組件的名稱,而非路徑。您必須建立該組件的路徑,以當做產生已編譯 XAML 之專案檔中的專案參考。或者,為了加入版本控制和強式名稱簽章,這個值也可能是 AssemblyName 所定義的字串。

請注意,分隔 clr-namespace 語彙基元及其值的字元是冒號 (:),而分隔 assembly 語彙基元和其值的字元則是等號 (=)。這兩個語彙基元之間使用的字元時分號。同時,不要在宣告中的任何位置包含空白。例如:

xmlns:custom="clr-namespace:SDKSample;assembly=SDKSampleLibrary"

對應至目前組件

如果要在與參考自訂類別的應用程式程式碼相同的組件內定義參考的 clr-namespace,可以忽略 assembly。或者,您也可以改用適用於這種情況的對等語法,也就是指定 assembly=,但不要在等號後面加上字串語彙基元。

在相同組件中定義的自訂類別可以當做頁面的根項目。部分類別不需要對應;如果您想將類別當做 XAML 中的項目加以參考,只需要對應應用程式中的頁面之部分類別以外的其他類別即可。

在組件中將 CLR 命名空間對應至 XML 命名空間

WPF 定義一個 CLR 屬性,供 XAML 處理器用來將多個 CLR 命名空間對應至單一 XML 命名空間。這個屬性 (即 XmlnsDefinitionAttribute) 位於產生組件之原始程式碼的組件層級中。WPF 組件原始程式碼使用這個屬性,將各種不同的通用命名空間,例如 System.WindowsSystem.Windows.Controls,對應至 https://schemas.microsoft.com/winfx/2006/xaml/presentation 命名空間。

XmlnsDefinitionAttribute 接受兩個參數:XML 命名空間名稱和 CLR 命名空間名稱。用來將多個 CLR 命名空間對應至同一個 XML 命名空間的 XmlnsDefinitionAttribute 可能不只一個。對應完成之後,如果需要,您也可以透過在部分類別程式碼後置頁面中提供適當的 using 陳述式,以沒有完整限定性條件的方式參考這些命名空間的成員。如需詳細資訊,請參閱 XmlnsDefinitionAttribute

請參閱

概念

XAML 概觀

其他資源

了解 XML 命名空間 (英文)