【发布时间】:2011-04-28 05:33:03
【问题描述】:
我有一个来自 WPF 4.0 RTM 的常规 DataGrid,我在其中放置来自数据库的数据。为了使DataGrid 的风格简洁明快,我使用高/高行,默认情况下DataGrid 将行内容对齐在顶部垂直位置,但我想设置中心垂直对齐方式。
我已经尝试过使用这个属性
VerticalAlignment="Center"
在DataGrid 选项中,但这对我没有帮助。
这是一个 XAML 代码示例,描述了我的 DataGrid 没有中心垂直对齐:
<DataGrid x:Name="ContentDataGrid"
Style="{StaticResource ContentDataGrid}"
ItemsSource="{Binding}"
RowEditEnding="ContentDataGrid_RowEditEnding">
<DataGrid.Columns>
<DataGridTextColumn Header="UserID"
Width="100"
IsReadOnly="True"
Binding="{Binding Path=userID}" />
<DataGridTextColumn Header="UserName"
Width="100"
Binding="{Binding Path=userName}" />
<DataGridTextColumn Header="UserAccessLevel"
Width="100"
Binding="{Binding Path=userAccessLevel}" />
<DataGridTextColumn Header="UserPassword"
Width="*"
Binding="{Binding Path=userPassword}" />
</DataGrid.Columns>
</DataGrid>
执行此代码的结果:
如您所见,所有行内容都有顶部垂直对齐。
为了使每行内容居中垂直对齐,我必须添加什么?
【问题讨论】:
-
另一种方法,使用 DataGridColumn 继承:blog.smoura.com/… - 允许在继承的列上简单地设置 VerticalAlignment 属性 - 需要从每个使用的列类型继承,所以这是一个很大的限制。也许有人会将其转化为行为?
标签: c# wpf xaml datagrid vertical-alignment