我完全不知道哪个属性导致垂直单元格边界的移动。内容已正确对齐中央,但边框似乎认为其对齐正确。
XAML定义是:
<DataGrid x:Name="DG_ComparedSet"
AllowDrop="True"
Background="AliceBlue"
HorizontalAlignment="Stretch"
AutoGenerateColumns="False"
PreviewDragEnter="File_DragEvent"
PreviewDragOver="File_DragEvent"
PreviewDrop="DG_ComparedSet_PreviewDrop">
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Header="Clear Comparison" Name="CXM_clearComparison" Click="CXM_clearComparison_Click" />
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
以编程方式构建的DataGrid布局是通过以下方式完成的:
Style cellStyle = new Style(typeof(DataGridCell));
cellStyle.Setters.Add(new Setter(DataGridCell.FontFamilyProperty, new FontFamily("Consolas")));
cellStyle.Setters.Add(new Setter(DataGridCell.HorizontalAlignmentProperty, HorizontalAlignment.Center));
cellStyle.Setters.Add(new Setter(DataGridCell.VerticalAlignmentProperty, VerticalAlignment.Center));
cellStyle.Setters.Add(new Setter(DataGridCell.ForegroundProperty, Brushes.MediumSeaGreen));
foreach (string colHead in parameters)
{
DataGridTextColumn col = new DataGridTextColumn
{
Header = colHead,
FontFamily = new FontFamily("Consolas"),
Binding = new Binding(colHead),
CellStyle = cellStyle
};
DG_ComparedSet.Columns.Add(col);
}
DG_ComparedSet.ItemsSource = dtOut.DefaultView;
缺少哪个属性或设置不正确?
答案 0 :(得分:0)
您对单元格对齐方式的设置将使列显示不再可用。没有看到更多代码,我无法确定您的意图,但是如果您想使单元格文本居中,则将内容而不是单元格本身居中。
Style cellStyle = new Style (typeof (DataGridCell));
cellStyle.Setters.Add (new Setter (DataGridCell.FontFamilyProperty, new FontFamily ("Consolas")));
//cellStyle.Setters.Add (new Setter (DataGridCell.HorizontalAlignmentProperty, HorizontalAlignment.Center));
//cellStyle.Setters.Add (new Setter (DataGridCell.VerticalAlignmentProperty, VerticalAlignment.Center));
cellStyle.Setters.Add (new Setter (TextBlock.TextAlignmentProperty, TextAlignment.Center));
cellStyle.Setters.Add (new Setter (DataGridCell.ForegroundProperty, Brushes.MediumSeaGreen));
那当然是假设您的单元格仅包含文本字符串。