首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >样式TargetType属性问题

样式TargetType属性问题
EN

Stack Overflow用户
提问于 2011-08-30 18:46:55
回答 2查看 132关注 0票数 3

以下TargetType规范之间有什么区别?

1.

代码语言:javascript
复制
<Style TargetType="{x:Type Button}" ...

2.

代码语言:javascript
复制
<Style TargetType="Button" ...

看起来两者都工作得很好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-30 18:59:36

在第一个示例中,Type标记扩展创建由给定字符串指定的Type实例,即Button

在第二个示例中,与TargetType属性关联的类型转换器将字符串"Button"转换为所需的Type

两者给出的结果完全相同。值得注意的是,在Silverlight中,Type标记扩展并不存在,因此(2)是唯一可能的。

票数 3
EN

Stack Overflow用户

发布于 2012-04-19 18:51:44

很抱歉这么老生常谈,但我觉得这是值得的。我最近遇到了一种情况,它表明x:TypeTypeName-as-String不同。从我的经验来看-

x:Type 考虑程序集的强名称或版本,但不考虑Type

我已经在我的博客中解释了我的场景和其他细节-

http://weblogs.asp.net/akjoshi/archive/2012/02/03/importance-of-specifying-ancestortype-with-x-type-in-relativesourcebinding.aspx

除此之外,在WPF推断类型的方式上也存在差异。对于x:使用TypeExtension类型,而对于TypeName-as-String使用FrameworkElementFactory。

根据MSDN -

支持类型名为字符串的

类型属性

WPF支持的技术允许指定类型类型的某些属性的值,而不需要使用x:Type标记扩展。相反,您可以将该值指定为命名该类型的字符串。这方面的例子有ControlTemplate.TargetType和Style.TargetType。类型转换器或标记扩展都不提供对此行为的支持。相反,这是通过FrameworkElementFactory实现的延迟行为。

http://msdn.microsoft.com/en-us/library/ms753322.aspx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7242005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档