wpf - 修复了 WPF DataGrid 列标题被截断的问题?

标签 wpf formatting format truncation

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

我四处搜索类似的问题,看到有人提到 0,6, 0,6 填充值不能更改,但我不知道他们是否在谈论我所看到的同一件事。

无论如何,我希望知道解决方法的人告诉我它是什么。

谢谢!

最佳答案

在 .NET 4 中,DataGridColumnHeader 将 header 内容包装在 DataGridHeaderBorder 的实例中。 DataGridHeaderBorder 确实在内容周围添加了 "3,3,3,3" 填充,如果当前设置了 Padding 属性到 "0,0,0,0"

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

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

<Style TargetType="DataGridColumnHeader">
    <Setter Property="Padding" Value="1,0" />
</Style>

或除全零以外的任何内容,例如 "0.0001""-1"DataGridColumnHeader 会将其填充传递给 DataGridColumnHeader,这就是您可以使用上面的隐式样式的原因。

关于wpf - 修复了 WPF DataGrid 列标题被截断的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7801201/

相关文章:

wpf - 将鼠标移出控制范围时禁用按钮

c# - 在 WPF 中继承样式

wpf - WPF中的连续文本代码

c - 如何在 C 中使用逗号作为千位分隔符来格式化数字?

asp.net - 强制 ASP.NET 文本框以 $ 符号显示货币

go - VS 代码不格式化 GO 代码

java - 如何根据 Java 语言环境显示没有年份的日期?

c# - 单元测试自定义 OnRender-Method

javascript - javascript 中的 String.Format 与 vb.net 中一样

java - 自动将测量格式化为 Java 中的工程单位