x:Type 標記延伸
更新:2007 年 11 月
供給所提供型別的 Type 物件。
XAML 屬性使用方式
<object property="{x:Type prefix:typeNameValue}" .../>
XAML 物件項目使用方式
<object>
<object.property>
<x:Type TypeName="prefix:typeNameValue"/>
</object.property>
</object>
XAML 值
prefix |
選擇項。對應非預設 XML 命名空間的前置詞。通常不需要指定前置字元,請參閱「備註」。 |
typeNameValue |
必要項。型別名稱,可以解析為目前的預設 XML 命名空間,或是提供 prefix 時的指定對應前置字元。 |
備註
x:Type 用於對採用 Type 的屬性 (Property) 提供屬性 (Attribute) 值。然而,許多接受 Type 做為值的屬性 (Property),能夠直接接受型別名稱 (型別的 Name 的字串值),如需詳細資訊,請查看特定屬性 (Property) 的文件。x:Type 在本質上是下列項目的標記延伸對等用法:C# 的 typeof() 運算子,或是 Microsoft Visual Basic .NET 的 GetType 運算子。
您會在根項目上將任何指定 XAML 頁面的預設 XML 命名空間定義為屬性 (Attribute)。通常在 Windows Presentation Foundation (WPF) 程式設計中會使用 WPF 命名空間做為預設的 XML 命名空間。該命名空間的識別項是 https://schemas.microsoft.com/winfx/2006/xaml/presentation。大部分針對常見 WPF 應用程式設計而提供的型別都在這個命名空間內。因此,您通常不需要對應前置字元,即可在使用 x:Type 時取得型別。如果參考的型別來自於自訂組件,或是當型別存在於 WPF 組件中,但所屬的 CLR 命名空間卻沒有對應到該組件 WPF 命名空間的一部分,就需要對應前置字元。如需前置詞、XML 命名空間和對應 CLR 命名空間的詳細資訊,請參閱 XAML 命名空間和命名空間對應。
屬性 (Attribute) 語法是最常配合這個標記延伸使用的語法。x:Type 識別項字串後提供的字串語彙基元,是指派做為基礎 TypeExtension 延伸類別的 TypeName 值。這個屬性的值是所需型別的 Name。
x:Type 可以用於物件項目語法中。在這個情況下,必須要指定 TypeName 屬性的值,才能適當初始化延伸。
x:Type 也可以用於會指定 TypeName 屬性 (Property) 做為 property=value 配對組的詳細屬性 (Attribute) 使用方式中。
<object property="{x:Type TypeName=typeNameValue}" .../>
繁複的使用方法所適用的擴充,通常是具有一個以上可設定屬性或有些屬性為選擇性。因為 x:Type 只有一個必要的可設定屬性,所以這種詳細使用方式並不常見。
在 WPF XAML 處理器實作中,這個標記延伸的處理是由 TypeExtension 類別定義的。
x:Type 是一種標記延伸。如果必須將屬性 (Attribute) 值加上逸出符號,以免成為常值或處理常式名稱,而且這個動作必須更全面地實施 (而不是只對特定型別或屬性 (Property) 設定型別轉換子 (Type Converter)),則通常會實作標記延伸。所有 XAML 標記延伸都會在其屬性 (Attribute) 語法中使用 { 與 } 字元,這個慣例讓 XAML 處理器知道某個標記延伸必須處理這個屬性 (Attribute)。如需詳細資訊,請參閱標記延伸和 XAML。