WPF DataGrid:如何在填充列中留出一些额外的空间以避免滚动条出现
问题描述:
首先,标题可能不是很好。WPF DataGrid:如何在填充列中留出一些额外的空间以避免滚动条出现
我使用WPF 4 DataGrid
很多。我想要的一个功能是将鼠标放在行上。我第一次尝试使用上的Trigger
更改背景颜色。但是,与只读数据网格单元存在冲突,请参阅我的其他帖子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”(为了使其无边框在右边),滚动条仍然显示出来。
答
您可以尝试减少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>
两个警告,因为我给了值:右侧边界线不出现,无论你设定的保证金,尽管这可能即使没有保证金二传手是真实的。当触发器激活你的“最后”或“最后”行时,列标题会移动(在这种情况下,它们都会向右移动一点)。
这是一个好主意。谢谢! – newman 2011-05-26 20:19:44