予设定的数据网格这样的最小高度:如何将数据网格中的单元格内容居中?
<DataGrid MinRowHeight="40">
饲喂DATAS数据网格后,在每个单元中的文本是顶部和左对齐。 我无法找到将文本居中的简单方法。
对此有何建议?
予设定的数据网格这样的最小高度:如何将数据网格中的单元格内容居中?
<DataGrid MinRowHeight="40">
饲喂DATAS数据网格后,在每个单元中的文本是顶部和左对齐。 我无法找到将文本居中的简单方法。
对此有何建议?
最终的解决方案:
<Style x:Key="DataGridContentCellCentering" TargetType="{x:Type DataGridCell}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Grid Background="{TemplateBinding Background}">
<ContentPresenter VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
如果您的网格使用DataGridTextColumn以外的列,这是正确的解决方案。如果您在网格上有模板列,TextBlock样式解决方案将在文本的下方添加一行。 如果有人可以请解释这段代码在做什么... – GBU 2016-10-27 18:26:46
试试DataGrid的垂直和HorizontalContentAlignment设置为中心
<DataGrid VerticalContentAlignment="Center" HorizontalContentAlignment="Center" />
如果不工作,你可以在this answer使用该解决方案。它使用对齐DataGrid单元格内容的样式,您可以使用样式来对齐数据网格单元格内容
为什么它不起作用? – 2016-03-11 01:39:11
不适用于DataGridCheckBoxColumn。 – IgorStack 2017-11-30 19:15:52
。我为DataGridCheckBoxColumn添加了一个示例,我希望它能让您朝着正确的方向发展。
<DataGridCheckBoxColumn Header="is active" IsReadOnly="False">
<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="CheckBox">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
</DataGridCheckBoxColumn.ElementStyle>
<DataGridCheckBoxColumn.Binding>
<Binding Path="ISACTIVE" ValidatesOnDataErrors="True" Converter="{StaticResource MyBoolToIsActiveConverter}" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged"
NotifyOnValidationError="True" ValidatesOnExceptions="True">
</Binding>
</DataGridCheckBoxColumn.Binding>
</DataGridCheckBoxColumn>
最后一个可以设置为单个列的解决方案。感谢那! – C4u 2016-07-07 15:49:26
修改你的风格标签这样.....
<Style x:Key="CellTextCentre" TargetType="DataGridCell">
<Setter Property="TextBlock.TextAlignment" Value="Center"></Setter>
<Setter Property="TextBlock.VerticalAlignment" Value="Center"></Setter>
</Style>
下面的代码将集中在数据网格单元格的内容:
<Style TargetType="DataGridCell">
<Setter Property="TextBlock.TextAlignment" Value="Center" />
</Style>
解释代码! – gsamaras 2015-05-26 10:30:47
当使用带有文本列的内置数据网格 – galford13x 2015-12-13 17:34:25
使用ElementStyle
<DataGridTextColumn ElementStyle="{StaticResource Centering}"/>
<Style x:Key="Centering" TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
这可能有所帮助:http://www.kudinov.ru/?p=133 – Alexey 2014-06-13 08:29:12