【问题标题】:Background color of 'Highlight Text' in WPF Datagrid cellWPF Datagrid单元格中“突出显示文本”的背景颜色
【发布时间】:2015-01-14 00:02:18
【问题描述】:

这不是数据网格行的简单“IsSelected”背景颜色。我指的是当我在具有可编辑数据的数据网格中时,我单击给定单元格并具有任何文本(例如地址),如果我选择部分文本,HIGHLIGHT 着色就是我想要的改变...我认为这将是 DataGridCell 样式的一部分,但不确定在哪里。

【问题讨论】:

  • 你能发布一张图片来展示你想要什么或不想要什么吗?我有点迷失在描述中。

标签: c# wpf datagridcell


【解决方案1】:

您正在寻找TextBoxBase.SelectionBrush Property。从 MSDN 上的链接页面:

获取或设置突出显示选定文本的画笔。

<TextBox SelectionBrush="Red" SelectionOpacity="0.5" 
    Foreground="Blue" CaretBrush="Blue">  
    This is some text.
</TextBox>


更新>>>

您可以在应用于DataGridTextColumn.EditingElementStyle 属性的Style 中应用此属性,如下所示:

<DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding Name}">
            <DataGridTextColumn.EditingElementStyle>
                <Style TargetType="{x:Type TextBox}">
                    <Setter Property="SelectionBrush" Value="Red" />
                </Style>
            </DataGridTextColumn.EditingElementStyle>
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

【讨论】:

  • 这可能适用于文本框,但我的问题是 DataGrid 单个单元格中的文本框。这将在 DataGrid 单元格模板中的哪个位置进行设置。