修复WPF DataGrid列标题被截断?

Dro*_*onz 2 format wpf formatting truncation

在我的WPF应用程序中,我使用DataGrid,当我的列标题标签文本接近列的宽度时,列标题文本的右侧部分被标题右侧的空白区域截断区域,就像标题右侧的内部填充,宽度为6或8像素,这似乎没有充分的理由.

我四处寻找类似的问题,看到有人提到无法改变的0,6,0,6填充值,但我不知道他们是否在谈论我所看到的同样的事情.

无论如何,我会喜欢知道解决方法的人让我知道它是什么.

谢谢!

Cod*_*ked 6

在.NET 4中,DataGridColumnHeader将标题内容包装在一个实例中DataGridHeaderBorder.在DataGridHeaderBorder确实出现添加填充"3,3,3,3"周围的内容,如果它的Padding属性当前设置为"0,0,0,0".

根据是否DataGridHeaderBorder用于列标题或行标题,还有其他逻辑.此外,各种主题具有相似但不完全相同的逻辑.

防止DataGridHeaderBorder添加填充的唯一方法是指定自己的填充.所以你可以使用:

<Style TargetType="DataGridColumnHeader">
    <Setter Property="Padding" Value="1,0" />
</Style>
Run Code Online (Sandbox Code Playgroud)

或者除了全零之外的任何其他内容,例如"0.0001""-1".该DataGridColumnHeader会通过它填充到DataGridColumnHeader,这就是为什么你可以使用上面的隐式样式.