根据我的理解,通过赋予值“”,DataGridColumn会扩展以填充DataGrid
的所有可用边距。我通常会为所有列指定“”以使其宽度相等并且不留任何余量。
<DataGrid.Columns>
<DataGridTextColumn Header="Header" Width="*"/>
<DataGridTextColumn Header="Header" Width="*"/>
<DataGridTextColumn Header="Header" Width="*"/>
<DataGridTextColumn Header="Header" Width="*"/>
<DataGridTextColumn Header="Header" Width="*"/>
<DataGridTextColumn Header="Header" Width="*"/>
</DataGrid.Columns>
然而,如果我的DataGrid被旋转,并且第一行用作实际的列标题(它可能听起来不好,但是......),该怎么办?在那种情况下,无论如何都要使所有行的高度均衡,并且不留任何余量?
<DataGrid.Columns>
<DataGridTextColumn Header="Header"/>
<DataGridTextColumn Header="Header"/>
<DataGridTextColumn Header="Header"/>
<DataGridTextColumn Header="Header"/>
<DataGridComboBoxColumn Header="Header"/>
<DataGridTextColumn Header="Header"/>
<DataGridComboBoxColumn Header="Header"/>
<DataGridTextColumn Header="Header"/>
<DataGridTextColumn Header="Header"/>
</DataGrid.Columns>
<DataGrid.LayoutTransform>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</DataGrid.LayoutTransform>
<DataGrid.ColumnHeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}"
BasedOn="{StaticResource {x:Type DataGridColumnHeader}}">
<Setter Property="LayoutTransform">
<Setter.Value>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Setter.Value>
</Setter>
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="LayoutTransform">
<Setter.Value>
<TransformGroup>
<RotateTransform Angle="-90" />
<ScaleTransform ScaleX="1" ScaleY="-1" />
</TransformGroup>
</Setter.Value>
</Setter>
</Style>
</DataGrid.CellStyle>