在blend中通过右键生成的模板副本可以自动将数据内容模板绑定到自定义模板,如果是自定义空模板,还需要添加ContentPresenter来显示控件中设置的数据内容。
一、在blend中选中某个控件,如果是普通控件,右键编辑模板-->编辑副本,可以自动创建一个控件的模板样式,然后可以定位到这个模板样式对其进行修改。在模板的ContentPresenter中默认都是绑定到控件源的,但是有时候需要调整文字等数据的居中方式等,可以在此设置。
比如
<Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type DataGridCell}"> <Border VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderBrush="Transparent" BorderThickness="0" Background="Transparent" SnapsToDevicePixels="True"> <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Center" HorizontalAlignment="Center"/> </Border> </ControlTemplate> </Setter.Value> </Setter>
上面的模板中Border属性设置的外框的属性。
二、特殊类型模板,比如dataGrid模板,可以右键编辑模板-->其他模板,来设置相应的模板,比如标题、行的样式模板。
三、在blend中在控件上通过右键无法创建的模板。比如在Blend中右击ListView控件,从样式和模板相关的菜单项中,我们没找到与列表头有关的项。可以通过如下方式来创建,
在Window的资源中增加一个样式,类型指向GridViewColumnHeader的样式:
<Style TargetType="{x:Type GridViewColumnHeader}" />
然后,切换回设计视图,展开“资源”面板。
点击进入编辑资源,
哈哈,这回就好办事了,先改改它的背景吧,系统默认主题实在太难看了。