1

在我的理解中,通过给出值“ ”,DataGridColumn 扩展以填充所有可用的边距DataGrid。我通常会为所有列指定“”以使它们的宽度相等并且不留余量。

<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>

但是,如果我的 DataGrid 被旋转,并且第一行用作实际的列标题会怎样(这听起来可能是一个糟糕的设计,但是......)。在那种情况下,是否有办法让所有行的高度均等化,并且不留余量?

<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>
4

0 回答 0