Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 突出显示Datagrid选定行_Wpf_Xaml_Datagrid - Fatal编程技术网

Wpf 突出显示Datagrid选定行

Wpf 突出显示Datagrid选定行,wpf,xaml,datagrid,Wpf,Xaml,Datagrid,我有一个DataGrid,它有四列,每行的每列中都有一个控件。每当我在列中选择一个控件时,它所属的任何一行都会高亮显示为白色。背景将为白色,因此控件仍会显示。我根本不想让这一行突出显示 <DataGrid> <DataGrid.Columns> <DataGridTemplateColumn>

我有一个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>         

试试这个

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

您需要为您的数据网格覆盖
HighlightBrushKey
,但如果您将其设置为白色,高亮显示的文本也会对应于白色,因此不可见

因此,基本上您需要将
HighlightBrushKey
覆盖到
White
highlighttextbushkey
覆盖到
Black
,以使其正常工作。这就是你覆盖它的方式-

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


那里的建议对我们很有帮助。现在,当我被选中的时候,一些白色被遮住了。有些仍然显示,在我单击数据网格后,最近选择的行中仍然有白色高亮显示。您是否尝试过使用其
单元格样式设置
数据网格的样式?我尝试过,单元格样式,行样式,列样式,一堆带有IsSelected触发器设置的内容包括边框和背景,似乎没有任何内容可以删除它。第二个答案可能会有帮助,这似乎效果不错,只是现在只有您选择的控件所在的列具有白色高亮显示,而不是整行。