在我的理解中,通过给出值“ ”,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>