如何解决WPF DataGrid:如何在填充列中保留一些额外的空间,以避免滚动条出现
| 首先,标题可能不是一个好标题。 我经常使用WPF 4DataGrid
。我想拥有的一项功能是在行上方突出显示鼠标。我的第一个尝试是在DataGridRow
上使用Trigger
更改背景颜色。但是,与只读datagrid单元存在冲突,请参阅此处的其他文章。现在,我能做的第二件事就是在鼠标上方添加边框。可以使用以下样式轻松完成此操作:
<Style TargetType=\"DataGridRow\">
<Style.Triggers>
<Trigger Property=\"IsMouseOver\" Value=\"True\">
<Setter Property=\"BorderThickness\" Value=\"1\"/>
<Setter Property=\"BorderBrush\" Value=\"Red\"/>
</Trigger>
</Style.Triggers>
</Style>
问题在于某些“ 0”具有星号列,并且通常不显示水平滚动条。但是,使用这种样式Trigger
,因为它添加了一个单位边框,所以当鼠标悬停在网格上方时,滚动条变为可见。我以为如果将星形柱缩小一些可以解决。可能吗?还是您还有其他想法?
编辑:即使我将边框厚度的值更改为\“ 1 1 0 1 \”(以便使其在右侧变为无边框),滚动条仍会显示。
解决方法
您可以尝试减少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,-2,0\"/>
</Trigger>
</Style.Triggers>
</Style>
我给出的值有两个警告:无论您将边距设置为什么,都不会出现右侧边界线,尽管即使没有边距设置器也可能是正确的。当触发器为您的\“ last \”或\“ bottom \”行激活时,列标题将移动(在这种情况下,它们都向右移动一点)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。