silverlight中更改DataGrid的列模板

最近在工作中使用了silverlight,要更改DataGrid的表头背景颜色等样式,试了各种方法没有成功,找了好久的办法,发现要更改模板才能改变。

1.使用Blend For Visual Stido打开要修改的silverlight项目。

2.点击右键。选择编辑其他模板,选择编辑ColumnHeaderStyle。

3.在出现的style里面设置自己的样式,根据MSDN上的文档显示,如果想要改变背景颜色,要在ControlTemple中设置一个名字为BackgroundRectangle矩形框,该矩形框的填充颜色就是表头的背景颜色。要有<ContentPresenter/>来盛放表头的内容,如没<ContentPresenter/>,表头是显示不出来的。

我的样式代码如下:

<Style x:Key="DataGridColumnHeaderStyle1" TargetType="sdk:DataGridColumnHeader">
            <Setter Property="BorderBrush" Value="White"/>
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="Margin" Value="1"/>
            <Setter Property="FontFamily" Value="SimHei"/>
            <Setter Property="Height" Value="15"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Grid x:Name="Root">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition/>
                                <ColumnDefinition Width="Auto" />
                            </Grid.ColumnDefinitions>
                            <Rectangle x:Name="BackgroundRectangle" Fill="#189CE8" Stretch="Fill"  Grid.ColumnSpan="2"/>
                            <ContentPresenter/>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

4.msdn的官网链接:https://msdn.microsoft.com/zh-cn/library/cc278066(VS.95).aspx;

  关于ContentPresenter的详细介绍可参考:http://www.cnblogs.com/Clingingboy/archive/2010/12/20/1911388.html;

原文地址:https://www.cnblogs.com/zhangqi0924/p/5282288.html