以下TargetType規範有何區別?風格TargetType屬性問題
1.
<Style TargetType="{x:Type Button}" ...
2.
<Style TargetType="Button" ...
看來都工作正常。
以下TargetType規範有何區別?風格TargetType屬性問題
1.
<Style TargetType="{x:Type Button}" ...
2.
<Style TargetType="Button" ...
看來都工作正常。
在第一個示例中,Type
標記擴展創建由給定字符串指定的Type
的實例,即Button
。
在第二個示例中,與TargetType
屬性關聯的類型轉換器將字符串"Button"
轉換爲所需的Type
。
兩者給出完全相同的結果。值得注意的是,在Silverlight中,Type
標記擴展不存在,所以(2)只有可能。
對不起,這樣的舊線程戳,但我覺得這是值得的。我最近遇到的情況表明x:Type
不同於TypeName-as-String
。從我的經驗 -
X:類型認爲強名稱或組件的版本,但不類型名,爲字符串。
我在這裏我的博客中解釋了我的情況和其他細節 -
從這個除此之外,也有在WPF如何推斷類型差異。對於x:類型使用TypeExtension,而對於TypeName-as-String使用FrameworkElementFactory。
作爲每MSDN - 支持
類型屬性類型名-作爲字符串
WPF支持,使指定的類型類型的一些 屬性的值的技術,而不需要的x:類型標記擴展 用法。相反,您可以將該值指定爲名稱爲 類型的字符串。這個例子是ControlTemplate.TargetType和Style.TargetType。不支持通過 類型轉換器或標記擴展提供此行爲的支持。相反,這是通過FrameworkElementFactory實現的 延期行爲。 [TargetType的=的TargetType = 「controlType」 之間的區別和 「{X:類型controlType}」]的
可能重複(HTTP://計算器。com/questions/1085730/target-type-controltype-and-targettype-xtype-controltype) – CodeNaked
對不起,我搜索了一個答案,但什麼也沒找到 – vkrzv