使用模板化DataGridRow

时间:2015-05-15 06:51:34

标签: wpf datagrid styling

我需要使用黑色和深灰色行的DataGrid。默认情况下,每行左侧都有灰色矩形(屏幕截图中标有红色),这是我不需要的。要删除它,我必须使用Template for DataGridRow。我得到的问题是AlternatingRowBackground在这种情况下不起作用,尽管我试图设置Background =" Transparent"用于Border和DataGridCellsPresenter。我在VisualStates中找到了示例,但这段代码看起来很重。有解决方法吗?

<Style TargetType="{x:Type DataGridRow}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type DataGridRow}">
                    <Border>
                        <DataGridCellsPresenter/>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

<Style TargetType="{x:Type DataGrid}">
        <Setter Property="Background"
                Value="Black" />
        <Setter Property="Foreground"
                Value="White" />
        <Setter Property="RowBackground"
                Value="Black" />
        <Setter Property="AlternatingRowBackground"
                Value="DarkGray" />
    </Style>

screens

1 个答案:

答案 0 :(得分:1)

灰色矩形是所谓的行标题。默认情况下,DataGrid会打开行标题和列标题。您可以通过设置

将其从行标题中关闭
HeadersVisibility=Column

所以,你不需要一个模板来完成它。