C# 更改未聚焦的选定datagrid行的颜色
我已经在我的数据网格行上实现了一个上下文菜单。在行上单击鼠标右键时,它会在打开关联菜单之前短暂高亮显示该行。据我理解,这是因为datagrid正在失去焦点 我正在尝试使用C# 更改未聚焦的选定datagrid行的颜色,c#,wpf,xaml,C#,Wpf,Xaml,我已经在我的数据网格行上实现了一个上下文菜单。在行上单击鼠标右键时,它会在打开关联菜单之前短暂高亮显示该行。据我理解,这是因为datagrid正在失去焦点 我正在尝试使用SystemColors.ControlBrushKey更改未聚焦但选定的颜色,但没有效果。这是不对的吗?我找到了一些ListBox相关的解决方案,这是公认的解决方案 <Style x:Key="DefaultRowStyle" TargetType="{x:Type DataGridRow}"> <S
SystemColors.ControlBrushKey
更改未聚焦但选定的颜色,但没有效果。这是不对的吗?我找到了一些ListBox
相关的解决方案,这是公认的解决方案
<Style x:Key="DefaultRowStyle" TargetType="{x:Type DataGridRow}">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Black" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Yellow" />
</Style.Resources>
</Style>
供参考的系统颜色完整列表:您唯一的选择是从中复制样式XAML并更改其中的颜色设置。XAML中的注释表明,除非您更改样式,否则它们提供的XAML中的一些状态是无法区分的
<VisualState x:Name="Unfocused_Selected">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="DGR_Border" Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[0].(GradientStop.Color)">
<EasingColorKeyFrame KeyTime="0" Value="{StaticResource ControlMediumColor}" />
</ColorAnimationUsingKeyFrames>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="DGR_Border" Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[1].(GradientStop.Color)">
<EasingColorKeyFrame KeyTime="0" Value="{StaticResource ControlDarkColor}" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
编辑:我链接了错误的页面。这就是Silverlight(doh!)的风格。我已经修复了指向WPF样式的链接。我还复制了WPF样式的适用区域。我为模板复制了
Setter
。当我将它粘贴到我的项目中时,它说DataGridRow
不作为System.Windows.Controls
名称空间的一部分存在,我正在查看silverlight样式,试图在localprimitives
名称空间上访问的所有元素也是如此。我已经更新了WPF.Ha。所以这是可行的,但只是部分有效。仅高亮显示所有列结束后的行尾。事实上,它高亮显示默认高亮显示的行的完全相反的部分