样式和控件模板之间的区别

Gon*_*dez 5 silverlight

我想知道Style(用于控件)和控件模板之间的区别.最好的祝福,

贡萨洛

Jor*_*mer 6

样式控制控件的各个属性.例如,按钮样式可以说"对于每个按钮,使用此背景".样式正在更改控件上的单个属性.

控件模板实际上处理控件如何显示其绑定数据.您没有说"我想覆盖控件的属性",而是将其他较小的控件组合到一个控件中,该控件可以呈现绑定数据的不同视图.

以前在WinForms中,如果你想编写一个自定义列表框(比如每个项目旁边都有一个图标),你必须继承ListView控件并覆盖绘制方法.这涉及大量的实验 - 巨大的痛苦.使用WPF模板,您可以使用XAML一起构造较小的控件并将它们绑定到父控件的不同属性.您实际上是为控件定义可视树.

有关Charles Petzold的深入解释,请参阅此文章.