WPF DataGrid Граница для столбцов сдвинута - PullRequest
0 голосов
/ 25 августа 2018

Я совершенно не понимаю, какое свойство отвечает за смещение вертикальных границ ячейки. Содержимое правильно выровнено по центру, но кажется, что граница выровнена вправо.

DataGrid Example

Определение 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;

Какое свойство отсутствует или задано неверно?

1 Ответ

0 голосов
/ 13 сентября 2018

Ваши настройки для выравнивания ячеек отбрасывают рендеринг столбцов.Не видя больше вашего кода, я не могу быть уверен в ваших намерениях, но если вы хотите, чтобы текст ячейки центрировался, то центрируйте содержимое, а не саму ячейку.

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));

, что предполагает, что ваши ячейки содержат только текстовые строкиконечно.

...