Datagrid选中的行突出显示

时间:2013-12-03 20:51:17

标签: wpf xaml datagrid

我有一个包含四列的DataGrid,每列的每一列都有一个控件。每当我选择一个列中的一个控件时,它所属的行都会突出显示为白色。背景将为白色,因此控件仍然显示。我根本不想让这一行突出显示。

<DataGrid>
<DataGrid.Columns>                                                                 
    <DataGridTemplateColumn>                                                                                                         
        <DataGridTemplateColumn.CellTemplate>                                                                                                                    
            <DataTemplate>
                <TextBox />
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    <DataGridTemplateColumn >
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <Button />
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    <DataGridTemplateColumn>
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <TextBox />
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    <DataGridTemplateColumn>
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <Button />
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>         

2 个答案:

答案 0 :(得分:1)

您需要为DataGrid覆盖HighlightBrushKey,但如果将其设置为白色,则突出显示的文本也会对应于白色,因此无法显示。

因此,基本上您需要覆盖HighlightBrushKeyWhiteHighlightTextBrushKeyBlack才能使其正常工作。这是你覆盖它的方式 -

<DataGrid>
  <DataGrid.Resources>
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
                     Color="White"/>
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}"
                     Color="Black"/>
  </DataGrid.Resources>
</DataGrid>

答案 1 :(得分:0)

试试这个

<DataGrid SelectionMode="Single" SelectionUnit="Cell"