1

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>
Quv
  • 2,958
  • 4
  • 33
  • 51
  • Not a direct answer, but there is a lot of good information on the SO question: [WPF Horizontal DataGrid](http://stackoverflow.com/questions/4132829) – Metro Smurf Feb 12 '13 at 18:00

0 Answers0