2010-02-24 28 views

回答

6

甲样式控制的控制的各个属性。例如,按钮样式可以说,“对于每个按钮,都使用此背景。”风格正在改变控制上的单一属性。

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

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

请参阅this查尔斯彼得堡深入解释文章。

+0

您好,非常感谢您对本文的详细解释和链接。我会尽快看看它。 – 2010-02-26 18:10:17

3

想象一下,你的控制权是一所房子。

A Style在概念上类似于放下新地毯和画墙。房子本身仍然是一样的,但它的外观是不同的。

A ControlTemplate等同于敲开墙壁或添加温室。房子的实际结构已经改变。

如果要更改控件E.G.的外观,请使用Style。它的背景颜色或边框的粗细。当您需要更改控件的基础结构时,请使用ControlTemplate。当您想要更改控件的某些方面的布局时,这非常有用。一个很好的例子是this文章,它将TabControl重新模板化为看起来像Microsoft Outlook中的导航器。

相关问题