Попробуйте установить VerticalContentAlignment="Center"
на DataGrid
:
<DataGrid VerticalContentAlignment="Center">
...
</DataGrid>
или вы можете добавить установщик к своему стилю:
<Setter Property="VerticalContentAlignment" Value="Center"/>
При применении к ItemsControl
сэто свойство обычно изменяет выравнивание каждого отдельного контейнера элемента.В вашем случае все строки должны выровняться по центру.
ОБНОВЛЕНИЕ
Похоже, что встроенный в WPF DataGrid
не следует правилу.
Решение зависит от типа используемых вами столбцов.
Для DataGridTemplateColumn
используйте CellTemplate
, например:
<DataTemplate>
<!--Substitute the TextBlock by the actual cell content, but don't drop VerticalAlignment-->
<TextBlock VerticalAlignment="Center" Text="{Binding Text}"/>
</DataTemplate>
Для DataGridTextColumn
, установите ElementStyle
:
<Style>
<Setter Property="FrameworkElement.VerticalAlignment" Value="Center"/>
</Style>
Я пробовал это на DataGridTextColumn
, но свойство от его родителя DataGridBoundColumn
, поэтому должно работать и для DataGridCheckBoxColumn
и DataGridHyperlinkColumn
.
Обновление 2
Кстати, есть другое решение .