ControlTemplate.TargetType 屬性

定義

取得或設定 套用 ControlTemplate 的型別。

public:
 property TypeName TargetType { TypeName get(); void set(TypeName value); };
TypeName TargetType();

void TargetType(TypeName value);
public System.Type TargetType { get; set; }
var typeName = controlTemplate.targetType;
controlTemplate.targetType = typeName;
Public Property TargetType As Type
<ControlTemplate TargetType="typeName"/>

屬性值

套用 ControlTemplate的型別。 此值通常會在 XAML 中設定,而不是程式碼。 請參閱<備註>。

備註

指定 TargetType 值的一般方式是透過 ControlTemplate上的 XAML 屬性。 在 XAML 中設定時,TargetType 的意義和您提供的值會採用 XAML 中類型呈現方式的一些層面。 特別是,將指定型別視為 XAML 元素所需的任何前置詞,也應該包含為 TargetType 值字串的值。 例如,如果範本是要以特定標記範圍中已對應前置詞 「local」 的自訂類型為目標,則 TargetType 值應該包含相同的前置詞。 此行為是由Windows 執行階段 XAML 剖析器中的內建轉換行為所啟用。

在大部分情況下,您會設定ControlTemplate的 TargetType,其中ControlTemplate位於Template屬性的Setter內。 這接著會位於您為控制項定義的隱含 樣式 內。 ControlTemplate.TargetType 值和包含StyleStyle.TargetType值應該一律是相同的類型參考,參考相同的隱含命名控制項。 否則控制項範本可能無法運作。

如需如何撰寫控制項範本的詳細資訊,請參閱 快速入門:控制項範本

注意

如果您先前已針對 WPF Windows Presentation Foundation (進行程式設計 XAML) ,則您可能已使用x:Type標記延伸來填入採用System.Type的任何 XAML 值。 Windows 執行階段 XAML 剖析器不支援x:Type。 相反地,您應該使用名稱參照類型,而不使用任何標記延伸,而且任何必要的 XAML 對支援類型轉換已經由上一個段落中所述的內建轉換行為處理。

在程式碼中使用TargetType

在程式碼中設定 TargetType 並不常見。 XAML 樣式/範本系統旨在藉由將 XAML 載入為資源,並讓控制項範本的所有層面事先就緒。 在執行時間之前,您應該很少知道控制項和範本的相關資訊,其中需要在程式碼中建立或參考 的 ControlTemplate 上設定 TargetType。

在程式碼中取得 TargetType 也並不常見,但您可能會這麼做,以按兩下您從 XAML 載入的 ControlTemplate 與從執行時間樹狀結構取得的指定控制項目標相容。

提示

如果您是使用 Microsoft .NET 語言進行程式設計, (C# 或 Microsoft Visual Basic) , TypeName 類型會專案為 System.Type。 使用 C# 進行程式設計時,您通常會使用 typeof 運算子,根據類型名稱做為字串,取得型別 的 System.Type 參考。 在 Microsoft Visual Basic 中,使用 GetType

適用於

另請參閱