0

我正在尝试构建一个项目网格,所有项目都是动态生成的(行和列)。我有一个列表视图和网格视图。我得到所有的列,并将它们添加到gridview。然后我将所有行添加到一个表中,并将其绑定到列表视图。

我正在使用类似的东西来旋转视图顶部的标题名称。

                    <ListView Name="lvEverything">
                    <ListView.Resources>
                        <Style TargetType="{x:Type GridViewColumnHeader}">
                            <Setter Property="LayoutTransform">
                                <Setter.Value>
                                    <RotateTransform Angle="-90"/>
                                </Setter.Value>
                            </Setter>
                            <Setter Property="Width" Value="250"></Setter>
                        </Style>
                    </ListView.Resources>

这很好用,它会旋转文本并使列的大小现在合适。

不过,我想做的是,它将第一列设置为不旋转。我不确定也不能让它只应用于我想要的列。

4

1 回答 1

0

在第一列上显式设置HeaderContainerStyle,这样它就不会回退到使用隐式:

<ListView Name="lvEverything">
    <ListView.Resources>
        <Style TargetType="{x:Type GridViewColumnHeader}">
            <Setter Property="LayoutTransform">
                <Setter.Value>
                    <RotateTransform Angle="-90"/>
                </Setter.Value>
            </Setter>
            <Setter Property="Width" Value="250"></Setter>
        </Style>
        <Style x:Key="FirstColumnStyle" TargetType="GridViewColumnHeader"/>
    </ListView.Resources>
    <ListView.View>
        <GridView>
            <GridViewColumn Header="First Column"
                DisplayMemberBinding="{Binding FirstColumn}"
                HeaderContainerStyle="{StaticResource FirstColumnStyle}"/>
            <GridViewColumn Header="Second Column"
                DisplayMemberBinding="{Binding SecondColumn}"/>
        </GridView>
    </ListView.View>
</ListView>

或者,如果您在代码中创建列:

GridViewColumn firstColumn = ...;
firstColumn.HeaderContainerStyle = new Style();
于 2010-08-09T23:30:42.623 回答