如何通过布尔绑定控制WPF DataGrid旋转并修复单元格尺寸异常
WPF DataGrid 视图旋转切换与单元格尺寸调整问题
我在代码中使用了WPF DataGrid,需要在特定场景下切换其视图模式(横向或纵向显示列,实现“旋转”效果)。计划通过接口传入的布尔变量来启用或停用变换视图,推测可能需要用到转换器。我从Stack Overflow复制了相关代码并做了调整,但仍有疑问。
已知旋转或恢复时必须修改以下参数:
RotateTransform的Angle="-90"MatrixTransform的Matrix="-1 0 0 1 0 0"RotateTransform的Angle="-90"ScaleTransform的ScaleX="1"、ScaleY="-1"RotateTransform的Angle="-90"ScaleTransform的ScaleX="1"、ScaleY="-1"
以下是我的XAML代码:
<DataGrid ItemsSource="{Binding Path=CurrentTable.DefaultView,IsAsync=True}" AutoGenerateColumns="True" AutoGeneratingColumn="DataGrid_AutoGeneratingColumn" SelectedItem="{Binding SelectedItem}" IsReadOnly="False" PreviewMouseRightButtonDown="DataGrid_PreviewMouseRightButtonDown" PreviewMouseLeftButtonDown="DataGrid_PreviewMouseLeftButtonDown" CellEditEnding="DataGrid_CellEditEnding" CanUserAddRows="False" CanUserReorderColumns="False" EnableColumnVirtualization="True" EnableRowVirtualization="True" VirtualizingStackPanel.VirtualizationMode="Standard"> <DataGrid.LayoutTransform> <TransformGroup> <RotateTransform Angle="90"/> <MatrixTransform Matrix="-1 0 0 1 0 0" /> </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> </DataGrid>
不知从何入手,希望能得到帮助。
编辑1
在@thatguy的帮助下,已实现DataGrid的旋转,但旋转后单元格尺寸异常过大,想了解如何调整。
内容的提问来源于stack exchange,提问作者user18091434
相关产品推荐
相关产品推荐

