我在数据网格行上实现了一个上下文菜单。右键单击一行时,会在打开上下文菜单之前将其短暂突出显示。据我了解,这是因为数据网格正在失去焦点。
我正在尝试使用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>
答案 0 :(得分:2)
您唯一的选择是从here复制样式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风格的适用区域。