Wpf 如何设置datagrid中垂直设置的列标题的高度(宽度)?
我将此代码用于我的DataGrid:Wpf 如何设置datagrid中垂直设置的列标题的高度(宽度)?,wpf,xaml,datagrid,Wpf,Xaml,Datagrid,我将此代码用于我的DataGrid: <DataGrid Grid.Row="1" Name="myDataGrid" SelectedItem="{Binding chosenReport, Mode=TwoWay}" ItemsSource="{Binding Reports, Mode=TwoWay}" IsReadOnly="True" FontSize="14" AutoGenerateColumns="False">
<DataGrid
Grid.Row="1"
Name="myDataGrid"
SelectedItem="{Binding chosenReport, Mode=TwoWay}"
ItemsSource="{Binding Reports, Mode=TwoWay}"
IsReadOnly="True"
FontSize="14"
AutoGenerateColumns="False">
<DataGrid.ColumnHeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="LayoutTransform">
<Setter.Value>
<RotateTransform Angle="270" />
</Setter.Value>
</Setter>
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="Field 1. Bla blabla blabla blabla blabla blablablabla blablablabla blabla" Binding="{Binding Path=Field1}" />
<DataGridTextColumn Header="Field 2. Bla blabla blabla blabla blabla blablablabla blablablabla blabla Bla blabla blabla blabla blabla blablablabla blablablabla blabla" Binding="{Binding Path=Field2}" />
<DataGridTextColumn Header="Field 3. Bla blabla blabla blabla blabla blablablabla blablablabla blabla tralalaalalalaal" Binding="{Binding Path=Field3}" />
<DataGrid.Columns/>
<DataGrid/>
是的,它可以工作并且垂直显示所有DataGrid字段。但是,由于列标题中的文本很长,我在datagrid中看不到数据,因为它被标题中的文本覆盖
我如何告诉DataGrid进行某种换行,将每个列标题中的文本放在几个“垂直行”中?
或者可能有列标题的高度(宽度)?使用内容模板将文本放入带有文本环绕的文本块中,然后限制宽度并将整个内容旋转270度:
<DataGrid.ColumnHeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<Grid MaxWidth="160">
<Grid.LayoutTransform>
<RotateTransform Angle="270" />
</Grid.LayoutTransform>
<TextBlock
TextWrapping="WrapWithOverflow"
Text="{Binding}"
/>
</Grid>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.ColumnHeaderStyle>
使现代化 如果您的用户注意力持续时间有限,或者您只是不太喜欢他们,请将此添加到网格:
<Grid.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
From="0"
To="270"
Duration="0:0:2"
DecelerationRatio=".9"
Storyboard.TargetProperty="LayoutTransform.Angle"
/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Grid.Triggers>
Lol!!有趣的效果。但我认为,从270度转回到0度,然后在鼠标离开列标题后回到270度可能会有用:)