controlTemplate如何复用?

dummysj 2012-05-09 04:51:12
style可以用baseon继承,但是controlTemplate怎么复用?

比如有A和B两个template,几乎相同,就是B比A多一个element,怎么处理?
...全文
169 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dummysj 2012-05-15
  • 打赏
  • 举报
回复
还有谁有好点子的,欢迎大家发表
dummysj 2012-05-11
  • 打赏
  • 举报
回复
好吧,同意三楼的观点,但是还有个问题。

如果现在差异点不在element,而是在visualstate上,该怎么复用?
沝林 2012-05-10
  • 打赏
  • 举报
回复
你说的问题根本就不是一个问题,Style跟ControlTemplate是两个概念,Style是一组属性设置的集合,BasedOn是控件默认支持的属性设置;而ControlTemplate是单个属性设置,用他设置控件的布局和行为,如果他要能继承,那必须是以下方式:

写一个新控件继承自该控件,增加一个新的依赖属性ExtraTemplate,然后在ControlTemplate中设置布局方式,放置一个ContentControl,将其Template绑定到"TemplateBinding ExtraTemplate”;这样你的控件可以这样使用:

<MyNewControl Template={StaticResource ControlTemplate1} ExtraTemplate={StaticResource ExtraTemplate1} ... .../>
dummysj 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

这种应该是不存在复用的。最后还是需要写为两个controlTemplate哈。
[/Quote]

那岂不是许多东西是重复的,存在大量冗余。
一来代码繁多,二来,如果将来要修改,那就要几个地方都要改。

难道microsoft没有考虑到这个问题?
Architecture Net 2012-05-09
  • 打赏
  • 举报
回复
这种应该是不存在复用的。最后还是需要写为两个controlTemplate哈。

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧