【发布时间】:2020-02-22 12:10:53
【问题描述】:
我的 WPF 窗口中有一个 DataGrid,我希望将文本与单元格中的垂直中心对齐 - 不行。这是我设置数据网格单元格样式的样式属性,但显然 VerticalAlignment 不起作用
<Window.Resources>
<Style TargetType="DataGridCell">
<Setter Property="TextBlock.TextAlignment" Value="Center"/>
<Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
<Setter Property="TextBlock.FontSize" Value="14"/>
<Setter Property="Height" Value="50"/>
</Style>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
</Window.Resources>
这是我的数据网格
<DataGrid x:Name="WOgrid" HorizontalAlignment="Center" Height="246" Margin="10,23.2,0,0" VerticalAlignment="Top" Width="119" IsReadOnly="True"
AutoGenerateColumns="False" Grid.Row="1" HeadersVisibility="Column" CanUserResizeRows="False" SelectionMode="Single">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding WOnum}" Header="WO Number" Width="*"/>
<DataGridTextColumn Visibility="Hidden" Binding="{Binding WOstatus}" Header="Status" Width="0"/>
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Style.Triggers>
<DataTrigger Binding="{Binding WOstatus}" Value="0">
<Setter Property="Background" Value="Orange"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding WOstatus}" Value="1">
<Setter Property="Background" Value="LightYellow"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding WOstatus}" Value="2">
<Setter Property="Background" Value="YellowGreen"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding WOstatus}" Value="3">
<Setter Property="Background" Value="GreenYellow"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding WOstatus}" Value="4">
<Setter Property="Background" Value="Red"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
我尝试了这个建议,似乎当 HorizontialAlignment 单独存在时它可以工作,但如果它与 VerticalAlignment 一起存在 - 不。
【问题讨论】:
-
我试过这个。好像当我设置水平对齐时,垂直对齐被取消了。