每列标题的边框

时间:2016-12-07 10:05:54

标签: wpf datagrid wpfdatagrid wpf-style

我想在wpf上创建一个表,每个列标题都有一个圆角,这是我到目前为止所得到的:

enter image description here

正如你所看到的,我有一个不希望的结果所需的结果。 不合需要的是,所有数据网格标题本身(不是列)都获得相同的边框,我需要使其透明,我该怎么做?

这是风格的一部分:

<DataGrid.ColumnHeaderStyle>
    <Style TargetType="{x:Type DataGridColumnHeader}">
        <Setter Property="SeparatorBrush"  Value="Transparent"/>
        <Setter Property="Margin" Value="2"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate>                                        
                        <Grid>
                            <Border CornerRadius="5 5 0 0" BorderThickness="1" BorderBrush="Black">
                                <TextBlock Text="{Binding }"/>
                            </Border>
                        </Grid>                                        
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</DataGrid.ColumnHeaderStyle>  

1 个答案:

答案 0 :(得分:1)

由于某些原因,DataGrid在其模板中有一个空白的DataGridColumnHeader。空白列没有DataContext值(tags)。因此,在DataTrigger中将边框画笔更改为透明:

tags

<小时/> 改进版本,在标题模板中使用ContentPresenter并在触发器

中测试内容
note

标题不是必需的文本,例如:

tags