我对学习WPF感到困惑。我看到ControlTemplate用来确定列表框中的每一项的外观。这不就是ItemTemplate在列表框中的用途吗?有什么关系?
发布于 2009-02-23 08:45:42
一个ControlTemplate可以让你改变现有控件的外观,例如,让一个普通的日常按钮看起来像Vista的任务栏闪闪发光的玻璃按钮,或者让选项卡控件看起来像新的Office2007功能区。
这个想法是,控件只包含行为,而ControlTemplate包含外观-所以按钮是“你点击的东西”,而不是“具有你可以点击的3d效果的矩形”。
您可以替换ListBox的控件模板,以获得类似于圆角或自定义滚动条的列表框。
DataTemplate (ItemTemplate是DataTemplate类型的属性)另一方面让你控制数据行在列表框(和其他类似控件)中的显示方式,数据模板被用来指定“显示姓氏,而不是逗号和名字--姓氏应该是粗体,如果名字以A开头,名字应该是绿色的”。
为了完整起见,还有一个ItemsPanelTemplate类,用于更改列表框的内部布局- Charles Petzold的WPF书中有一个使用它来使普通列表框显示其项目为圆形的示例。
发布于 2009-02-22 18:35:22
ItemTemplate描述了如何在列表框中呈现数据项(例如,您可以将列表框绑定到列表- ItemTemplate将允许您指定如何呈现Foo)。ItemTemplate是一种DataTemplate。
ControlTemplate描述了ListBox本身应该如何呈现
https://stackoverflow.com/questions/575389
复制相似问题