我有一个 wpf 4.5 应用程序,它在用户控件中有一个数据网格。我在 Blend 中为数据网格设计了样式,但是当我将样式复制到我的 VS 2012 项目中时,它无法正常工作。
这是 Blend 中的基本样式:
请注意所选行中文本的颜色(绿色)和正在编辑的文本框周围的填充
现在这是 Visual Studio 2012 的相同样式:
因此,所选行中突出显示的文本与背景颜色相同(使其不可见),我无法更改文本框边框颜色或边距以匹配混合样式。
这是单元格样式:
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Border x:Name="border"
BorderBrush="Transparent"
BorderThickness="1"
Background="Transparent"
SnapsToDevicePixels="True"
Margin="15,10,15,10">
<ContentPresenter Name="CellContent" SnapsToDevicePixels="True" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="Green"/>
</Trigger>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="BorderBrush" TargetName="border" Value="#FFD8D8D8"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
因此您可以看到将绿色标记为前景色的触发器在混合中有效,但在视觉工作室中无效。我认为这是一种系统颜色,它以某种方式覆盖了触发器,但我不确定如何追踪它。
有人可以通过设置选定的行文本颜色和文本框边框/边距来帮助我纠正这个样式问题。
提前致谢