In my understanding, by giving the value "", a DataGridColumn expands to fill all available margin of a DataGrid
. I'd normally specify "" for all the columns to make their widths equal and leave no margin.
<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>
However, what if my DataGrid is rotated, and the first row serves as an actual column header (it may sound a bad design, but...). In that case, is there anyway to get all the row's height equalize, and leave no margin?
<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>