共用方式為


中的 XAML 命名空間 Xamarin.Forms

XAML 會針對命名空間宣告使用 xmlns XML 屬性。 本文介紹 XAML 命名空間語法,並示範如何宣告 XAML 命名空間來存取類型。

概觀

XAML 檔案的根元素內一律有兩個 XAML 命名空間宣告。 第一個定義預設命名空間,如下列 XAML 程式代碼範例所示:

xmlns="http://xamarin.com/schemas/2014/forms"

預設命名空間會指定在 XAML 檔案中定義且沒有前置詞的項目會參考 Xamarin.Forms 類別,例如 ContentPage

第二個命名空間宣告會使用 x 前置詞,如下列 XAML 程式代碼範例所示:

xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"

XAML 會使用前置詞來宣告非預設命名空間,並在參考命名空間內的類型時使用前置詞。 x命名空間宣告會指定在 XAML 中定義且前置詞x為 的元素和屬性,這些元素是 XAML 內建的元素(特別是 2009 XAML 規格)。

下表概述 x 支援的 Xamarin.Forms命名空間屬性:

建構 描述
x:Arguments 指定非預設建構函式或 Factory 方法物件宣告的建構函式自變數。
x:Class 指定 XAML 中所定義類別的命名空間和類別名稱。 類別名稱必須符合程式代碼後置檔案的類別名稱。 請注意,此建構只能出現在 XAML 檔案的根元素中。
x:DataType 指定 XAML 專案及其子系系所系結的物件型別。
x:FactoryMethod 指定可用來初始化物件的 Factory 方法。
x:FieldModifier 指定具名 XAML 元素之已產生欄位的存取層級。
x:Key 為中的每個 ResourceDictionary資源指定唯一的使用者定義索引鍵。 索引鍵的值是用來擷取 XAML 資源,通常用來做為標記延伸的 StaticResource 自變數。
x:Name 指定 XAML 專案的執行時間物件名稱。 設定 x:Name 類似於在程式代碼中宣告變數。
x:TypeArguments 指定泛型型別的建構函式的泛型型別自變數。

如需屬性的詳細資訊 x:DataType ,請參閱 編譯的系結。 如需屬性的詳細資訊 x:FieldModifier ,請參閱 字段修飾詞。 如需 和 x:FactoryMethod 屬性的詳細資訊x:Arguments,請參閱在 XAML 中傳遞自變數。 如需屬性的詳細資訊 x:TypeArguments ,請參閱 使用 Xamarin.FormsXAML 中的泛型。

注意

除了上面所列的命名空間屬性之外, Xamarin.Forms 也包含可透過命名空間前置詞取用的 x 標記延伸。 如需詳細資訊,請參閱 使用 XAML 標記延伸

在 XAML 中,命名空間宣告會繼承自父元素到子專案。 因此,在 XAML 檔案的根元素中定義命名空間時,該檔案中的所有專案都會繼承命名空間宣告。

宣告型別的命名空間

類型可以在 XAML 中參考,方法是宣告具有前置詞的 XAML 命名空間、指定 Common Language Runtime (CLR) 命名空間名稱的命名空間宣告,以及選擇性地宣告元件名稱。 這是藉由在命名空間宣告中定義下列關鍵詞的值來達成:

  • clr-namespace:using: – 在元件內宣告的 CLR 命名空間,其中包含要公開為 XAML 元素的類型。 需要這個關鍵詞。
  • assembly= – 包含參考 CLR 命名空間的元件。 這個值是元件的名稱,不含擴展名。 元件的路徑應該建立為專案檔中的參考,其中包含將參考元件的 XAML 檔案。 如果 clr-namespace 值與參考型別的應用程式程式代碼位於相同的元件內,則可以省略這個關鍵詞。

請注意,將 clr-namespaceusing 標記與其值分隔的字元是冒號,而將標記與值分隔的 assembly 字元是等號。 兩個標記之間要使用的字元是分號。

下列程式代碼範例顯示 XAML 命名空間宣告:

<ContentPage ... xmlns:local="clr-namespace:HelloWorld" ...>
  ...
</ContentPage>

或者,這可以撰寫為:

<ContentPage ... xmlns:local="using:HelloWorld" ...>
  ...
</ContentPage>

前置 local 詞是一種慣例,用來指出命名空間內的型別是應用程式的本機類型。 或者,如果類型位於不同的元件中,則元件名稱也應該定義在命名空間宣告中,如下列 XAML 程式代碼範例所示:

<ContentPage ... xmlns:behaviors="clr-namespace:Behaviors;assembly=BehaviorsLibrary" ...>
  ...
</ContentPage>

然後,從匯入的命名空間宣告類型的實例時,會指定命名空間前置詞,如下列 XAML 程式代碼範例所示:

<ListView ...>
  <ListView.Behaviors>
    <behaviors:EventToCommandBehavior EventName="ItemSelected" ... />
  </ListView.Behaviors>
</ListView>

如需定義自定義命名空間架構的相關信息,請參閱 XAML 自定義命名空間架構

摘要

本文介紹 XAML 命名空間語法,並示範如何宣告 XAML 命名空間來存取類型。 XAML 會針對命名空間宣告使用 xmlns XML 屬性,而且型別可以在 XAML 中藉由宣告具有前置詞的 XAML 命名空間來參考。