我有一个wpf 4.5应用程序,在usercontrol中有一个datagrid。我为Blend中的datagrid设计了样式,但是当我将样式复制到VS 2012项目中时,它无法正常工作。WPF Datagrid风格选择行
这里是基本样式看起来像在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>
,所以你可以看到触发标志的绿色作为混合的颜色foregorund作品,但不是视觉工作室。我认为这是一种覆盖触发器的系统颜色,但我不确定如何跟踪这种情况。
有人可以帮助我通过设置选定的行文本颜色和文本框边框/边距来纠正此风格问题。
This is a link to the entire datagrid style resource dictionary
在此先感谢
JKing,最终的模板是什么?谢谢! – Rachael 2013-04-25 00:50:27
@ UB3571,我编辑了我的答案,包括我的datagridstyle – 2013-04-28 14:26:53