WPF中Style和Template的区别

在Nikck Thuesen的blog上看到一篇好文,很清晰的解释了WPF中Style和Template的区别。

先来看Style:

假设我们认为下面的这个东西是一个按钮

我要对它进行一些配置,即设置它的一些属性

如果我需要很多相同的按钮,就需要重复设置这些属性

其实我们只需要在Resource中定义一个Style,就可以将它应用到所有按钮

所以Style就是用来减少重复设置相同的属性。

接下来是Template。Template决定了按钮到底长什么样。

其实按钮本身并不关心自己的样子(Visual),只要能按,它就是按钮。

定义Template并应用到按钮的Template属性,可以让它们变成另外一个样子。

最后,因为Template也是一个属性,所以可以在Style中定义使用哪个Template。