【问题标题】:Datagrid selected row highlighted突出显示的 Datagrid 选定行
【发布时间】:2013-12-20 02:47:04
【问题描述】:

我有一个包含四列的 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>         

【问题讨论】:

  • 那里的建议对升位有所帮助。现在,当我在行上被选中时,我可以掩盖一些白色。有些仍然显示,在我单击数据网格后,最近选择的行中仍然有这个白色突出显示。
  • 您是否尝试过使用CellStyleDataGrid 设置样式?
  • 我试过了,CellStyle、RowStyle、ColumnStyle,一堆用 IsSelected 触发器设置边框和背景,似乎没有什么能摆脱它。
  • 第二个答案here 可能有帮助

标签: wpf xaml datagrid


【解决方案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>

【讨论】:

    【解决方案2】:

    试试这个

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

    【讨论】:

    • 这似乎工作得很好,只是现在只有带有您选择的控件的列具有白色突出显示而不是整行。
    猜你喜欢
    • 2013-06-11
    • 2015-10-31
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 2023-03-29
    • 2011-06-24
    • 2011-06-16
    相关资源
    最近更新 更多