Search code examples
c#wpfwpfdatagrid

How to set vertical text in the column headers of WPF DataGrid?


Well, actually rotated -90 degrees from horizontal is what I mean.

I need to do this because the text for the header is quite long but the cell value is short, and I want to fit a lot of columns on the screen.

Is it possible to do this easily or do I need to learn about resources and templates first? I don't mind a "hack" solution!


Solution

  • This will rotate the whole ColumnHeaderCell:

    <DataGrid.ColumnHeaderStyle>
        <Style TargetType="{x:Type DataGridColumnHeader}">
            <Setter Property="LayoutTransform">
                <Setter.Value>
                    <RotateTransform Angle="270" />
                </Setter.Value>
            </Setter>
        </Style>
    </DataGrid.ColumnHeaderStyle>
    

    Be aware: this means HorizontalContentAlignment is then a VerticalContentAlignment and vice versa.