相关疑难解决方法(0)

如何在DataGrid中设置所选行的颜色

这看起来很简单,但我只是看不出怎么做.

DataGrid中所选行的默认背景颜色太深,我无法读取它.反正它有没有?

试过这个(从Neverminds链接修改)

<dg:DataGrid.RowStyle>
    <Style TargetType="{x:Type dg:DataGridRow}">
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True" >
                <Setter Property="Background" Value="Gainsboro" />
            </Trigger>
        </Style.Triggers>
    </Style>
</dg:DataGrid.RowStyle>
Run Code Online (Sandbox Code Playgroud)

但仍然没有......

c# wpf xaml datagrid

121
推荐指数
7
解决办法
13万
查看次数

XAML语法错误阻止设计器但编译正常

我遇到了一个相当离奇的事情,我DataGrid在WPF XMAL页面中定义了以下声明:

<DataGrid.Resources>
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#FF3399FF" />
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="White" />
    <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="#FF3399FF"/>
    <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="White" />
</DataGrid.Resources>
Run Code Online (Sandbox Code Playgroud)

从技术上讲,这两种Inactive SystemColors类型来自.net 4.5,但是当我将它设置为目标.net 4时,我可以编译该程序,并且这些非活动画笔可以工作,但是当它设置为目标.net 4时,在Visual Studio中加载XMAL设计器页面会引发错误The member "InactiveSelectionHighlightTextBrushKey" is not recognized or is not accessible.然后阻止设计器视图.但它仍然按照程序中的定义进行编译和显示.

至少可以说这看起来非常不一致,我无法判断这是否是Visual Studio 2012问题,或者它是否允许程序编译,因为我的开发计算机已经安装了.net 4.5而且只是在它看到时才更改目标框架有些东西正在使用它(我非常怀疑这一点).或者,非活动类型是否可能在.net 4中,但未在文档中列出,并且仅在VS中导致此问题?

有没有更好的方法在.net 4中执行此操作以允许我设置DataGrid行的非活动选择颜色?或者是升级到.net 4.5的唯一方法吗?

.net wpf xaml datagrid visual-studio-2012

10
推荐指数
2
解决办法
5366
查看次数

标签 统计

datagrid ×2

wpf ×2

xaml ×2

.net ×1

c# ×1

visual-studio-2012 ×1