首先,标题可能不是很好。
我正在使用WPF 4 DataGrid
。我想要的一个功能是突出鼠标在行上。我的第一次尝试是使用Trigger
上的DataGridRow
更改背景颜色。但是,与只读数据网格单元格存在冲突,请参阅我的其他帖子here。现在,我能做的下一个最好的事情就是在鼠标上添加边框。这可以通过这种风格轻松完成:
<Style TargetType="DataGridRow">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
问题是某些DataGrid
具有星号大小的列,并且它通常不会显示水平滚动条。但是,使用此样式Trigger
,因为它添加了一个单位边框,当鼠标悬停在网格上时,滚动条变为可见。如果我能让星柱稍微小一些,我认为可以解决它。可能吗?或者你还有其他想法吗?
编辑:即使我将边框粗细的值更改为“1 1 0 1”(以使其在右边无边框),滚动条仍会显示。
答案 0 :(得分:2)
您可以尝试减少DataGridRow的边距。
<Style TargetType="DataGridRow">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="Red"/>
<Setter Property="Margin" Value="0,0,-2,0"/>
</Trigger>
</Style.Triggers>
</Style>
我给出的值有两个警告:无论你设置的边距是什么,右侧边界线都不会出现,尽管即使没有边距设定器也可能是这样。当触发器激活“最后”或“底部”行时,列标题会移位(在这种情况下,它们都会向右移动一点)。