Делаю выравнивание текста в DataGridTextColumn по вертикали
<DataGridTextColumn Binding="{Binding Path=Name}"
Header="..."
SortDirection="Ascending">
<DataGridTextColumn.CellStyle>
<Style>
<Setter Property="FrameworkElement.VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
В результате границы ячейки тоже мигрируют на середину Как сделать так, чтобы границы ячейки не рисовались по центру ячейки?
К сожалению, стандартный шаблон ячейки таков, что стилем это поведение не исправить, придется изменять шаблон (благо хотя бы там изменения будут простыми), для этого кликните в дизайнере правой кнопкой по DataGrid и выберите Edit Additional Templates-Edit CellStyle-Edit a Copy...
В добавившийся стандартный стиль в шаблоне (<Setter Property="Template">
) найдите ContentPresenter
представляющий содержимое ячейки и установите ему VerticalAlignment="Center"
Если вы хотите иметь возможность настраивать выравнивание по разному в разных столбцах, то можно вместо явного указания значения выполнить привязку: VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
, тогда в столбце делаем так:
<DataGridTextColumn Header="A" Binding="{Binding A}">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell" BasedOn="{StaticResource DataGridCellStyle1}">
<Setter Property="VerticalContentAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
Это более предпочтительный и универсальный метод.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
После создания WPF-приложения не отображается дизайнер окон, есть только файл с разметкой xamlКак открыть дизайнер?
Есть служба, написанная мнойВ сервисе я использовал стороннюю библиотеку
Есть некий внешний сервис, отдающий такой объект:
Час назад я написал такой код, чтобы проверить правильность решенной мною задачи: