【发布时间】:2015-09-20 05:23:40
【问题描述】:
有一个 WPF 数据网格,没有什么特别之处。它有时有 HeadersVisibility All/Row,取决于我们代码中的用法。 但无论标题样式如何,它都有对齐问题。 标题/数据文本都没有正确对齐,左上角的第一个标题也没有正确对齐,这里缺少 1 个像素。 我附上一张图片以便更明显。
这看起来真的很不专业和业余。 文本对齐比左上角差很多,所以如果我能修复它已经是一个很大的改进。
垂直:正如我所见,行标题文本与中心正确对齐,不像上面的数据。
Horizontal:这里哪个与哪个(标题数据)对齐并不重要,但至少它们应该是内联的。
谢谢
编辑 XAML 部分:
<dg2d:DataGrid2DT.CellStyle>
<Style TargetType="wpftoolkit:DataGridCell">
<Setter Property="TextBlock.VerticalAlignment" Value="Stretch"/>
<Setter Property="TextBlock.HorizontalAlignment" Value="Stretch"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="LightBlue"/>
</Trigger>
</Style.Triggers>
</Style>
</dg2d:DataGrid2DT.CellStyle>
我尝试添加<Setter Property="TextBlock.Padding" Value="5, 5, 0, 0" />,但这没有任何效果。只是为了尝试,我添加了<Setter Property="TextBlock.TextAlignment" Value="Right" /> - 这很好用。只有paddig什么都不做。也许单元格太小而无法填充?
EDIT2
如果我将 VerticalAlignment 设置为“Center”,则 Textblock 将放置在单元格的中心。有了这个,文本或多或少在中心,但不好,因为文本块不再填充单元格。我希望文本块填充单元格,并使文本垂直居中。 使用“填充”应该可以解决我的问题,但它没有效果。
【问题讨论】:
-
您是否尝试设置行标题或列标题的内容控件的
VerticalAlingment和/或“HorizontalAlignment”。您也可以尝试在您的 Cell 上设置它们 -
但对齐问题不在于行或列标题,而在于数据单元格。看截图,与数据单元格不同,标题文本对齐良好。
-
如何定义单元格?作为
DataGridTemplateColumn?
标签: wpf datagrid header alignment