Menata header GridView dengan tinggi dan teks yang diputar

Saya telah membuat tampilan grid yang ditampilkan seperti yang ditunjukkan di bawah ini:

masukkan deskripsi gambar di siniYang ingin saya lakukan adalah merentangkan tinggi header sesuai kebutuhan agar sesuai dengan teks yang diputar, bagaimana saya bisa melakukan ini? Sesuatu seperti mockup di bawah ini (Catatan: jelas teks yang diputar tidak akan terpotong)

masukkan deskripsi gambar di sini

Juga seperti pada mockup kedua, saya ingin teks yang diputar sedikit lebih berdekatan. Jika dibandingkan dengan gambar pertama yang sepertinya jarak antar tiap diatur dengan lebar blok teks. Apa pendekatan terbaik untuk mendekatkan mereka?

Ini XAML saya:

<UserControl.Resources>
    <DataTemplate x:Key="headerTemplate">
        <TextBlock HorizontalAlignment="Left" Text="{Binding}"/>
    </DataTemplate>
    <Style x:Key="GridHeaderStyle" TargetType="DataGridColumnHeader">
        <Setter Property="VerticalContentAlignment" Value="Bottom"/>
    </Style>

    <Style x:Key="ColumnHeaderStyle" TargetType="GridViewColumnHeader">
        <Setter Property="VerticalContentAlignment" Value="Bottom"/>
    </Style>
    <Style x:Key="rotatedText" TargetType="TextBlock">
        <Setter Property="RenderTransform">
            <Setter.Value>
                <RotateTransform Angle="-45" />
            </Setter.Value>
        </Setter>
    </Style>
</UserControl.Resources>

<GridView>
    <GridViewColumn Header="Name" HeaderTemplate="{StaticResource headerTemplate}" HeaderContainerStyle="{StaticResource ColumnHeaderStyle}" DisplayMemberBinding="{Binding Path=Name}"/>
    <GridViewColumn Header="Job Title" HeaderTemplate="{StaticResource headerTemplate}" HeaderContainerStyle="{StaticResource ColumnHeaderStyle}" DisplayMemberBinding="{Binding Path=Job_Title}" />
    <GridViewColumn Header="Department" HeaderTemplate="{StaticResource headerTemplate}" HeaderContainerStyle="{StaticResource ColumnHeaderStyle}" DisplayMemberBinding="{Binding Path=Department}" />
    <GridViewColumn Header="Company" HeaderTemplate="{StaticResource headerTemplate}" HeaderContainerStyle="{StaticResource ColumnHeaderStyle}" DisplayMemberBinding="{Binding Path=Company}" />

    <GridViewColumn DisplayMemberBinding="{Binding Path=Company}">
        <GridViewColumn.Header>
            <StackPanel Orientation="Vertical">
                <TextBlock HorizontalAlignment="Center">Modules</TextBlock>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Style="{StaticResource rotatedText}" >Customer Services</TextBlock>
                    <TextBlock Style="{StaticResource rotatedText}" >Asset Management</TextBlock>
                    <TextBlock Style="{StaticResource rotatedText}" >Works Management</TextBlock>
                    <TextBlock Style="{StaticResource rotatedText}" >Project Management</TextBlock>
                    <TextBlock Style="{StaticResource rotatedText}" >Rates Management</TextBlock>
                    <TextBlock Style="{StaticResource rotatedText}" >Finance</TextBlock>
                    <TextBlock Style="{StaticResource rotatedText}" >Human Resources</TextBlock>
                    <TextBlock Style="{StaticResource rotatedText}" >Document Management</TextBlock>
                    <TextBlock Style="{StaticResource rotatedText}" >User Management</TextBlock>
                    <TextBlock Style="{StaticResource rotatedText}" >Configuration</TextBlock>
                </StackPanel>
            </StackPanel>
        </GridViewColumn.Header>
    </GridViewColumn>
</GridView>

person Hank    schedule 31.05.2013    source sumber


Jawaban (1)


Gunakan LayoutTransform alih-alih RenderTransform. Itu akan menyelesaikan masalah Anda.

    <Style x:Key="rotatedText" TargetType="TextBlock">
        <Setter Property="LayoutTransform">
            <Setter.Value>
                <RotateTransform Angle="-45" />
            </Setter.Value>
        </Setter>
    </Style>
person Jawahar    schedule 31.05.2013