我的style
中设置了app.config
,我想在我的程序中使用rectangle
颜色。它很好很简单,看起来像这样;
<Style TargetType="Rectangle">
<Setter Property="Fill" Value="LightBlue"/>
</Style>
我注意到最近我的所有DataGrids
都有一些奇怪的行为,当用户使用箭头键浏览rows
时,单元格内的文字会被清空,看起来像这样;
BEFORE
ARROWKEYS ATESSED
正如你所看到的那样,文字显然已经消失了(这两个图像中的细胞都是相同的)。我终于看到了这一点并得出结论:rectangle
样式适用于每个DataGridCell
。我只能假设这是因为wpf
在recangles
中使用了DataGridCell
。
我是否可以将此样式仅应用于我从工具箱中取出的rectangles
而不是rectangles
中的文字DataGrid
?
除此之外的一个简单选择是完全删除style
并单独应用它,但如果我们更改颜色方案,这可能会非常耗时。
已更新
我也(如果可能的话)喜欢使用任何修复同时修改我喜欢的DataGridCell
外观;
<Style TargetType="DataGridCell">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Orange" />
<Setter Property="BorderBrush" Value="Black" />
</Trigger>
</Style.Triggers>
</Style>
答案 0 :(得分:2)
DataGridCells
使用在其可视化树中具有Rectangle的FocusVisualStyle
。这些矩形从默认的Rectangle样式中获取Fill
画笔。如果您更改FocusVisualStyle
,则在键盘选择
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
</Style>
</DataGrid.CellStyle>
如果已经有DataGridCell
的默认样式,请在那里添加一个setter
<Style TargetType="DataGridCell">
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Orange" />
<Setter Property="BorderBrush" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
<小时/> 其他信息:我对
Buttons
存在同样的问题,并使用Tab
进行选择