我对学习WPF很困惑.我看到ControlTemplate用于确定列表框中每个项目的外观.这不是ItemTemplate在列表框中的用途吗?有什么不同?
ControlTemplate让您可以更改现有控件的外观和感觉,例如,使日常按钮看起来像Vista的任务栏闪亮玻璃按钮,或使标签控件看起来像新的Office 2007功能区.
我们的想法是控件只包含行为,而ControlTemplate包含外观 - 所以按钮是"你点击的东西"而不是"你可以点击一些3d效果的矩形".
您可以替换ListBox的控件模板,以获得类似带圆角的列表框或自定义滚动条.
另一方面,DataTemplate允许您控制列表框(和其他类似控件)中显示的数据行的方式,数据模板用于指定"显示姓氏,而不是逗号和名字 - 以及姓氏应该"之类的内容如果以A"开头,则应为粗体,名字应为绿色.
而且为了完整性,还有一个ItemsPanelTemplate类用于更改列表框的内部布局--Charles Petzold的WPF书中有一个使用它来制作一个普通列表框的例子,将它显示在一个圆圈中.