【问题标题】:How to evenly space out GridViewColumns in GridView?如何在 GridView 中均匀分布 GridView 列?
【发布时间】:2011-06-23 12:32:22
【问题描述】:

这是我的 XAML:

<ListView ItemsSource="{Binding Items}">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Property1" DisplayMemberBinding="{Binding Property1}" />
            <GridViewColumn Header="Property2" DisplayMemberBinding="{Binding Property2}" />
        </GridView>
    </ListView.View>
</ListView>

我希望这 2 列以 1:1 的比例占据 ListView 的宽度。

我怎样才能做到这一点?


编辑:我找到了this suggestion on MS Connect。这将完美地解决我的问题。 但是它被推迟关闭(现在已经 2.5 年了..)

【问题讨论】:

    标签: wpf listview gridview


    【解决方案1】:

    想到的是在模板中使用内部Grids,每个模板都有一个ColumnDefinition和相同的SharedSizeGroup,然后GridView应该有Grid.IsSharedSizeScope="True",并且网格视图的列本身应该是不可调整大小(如果可能的话),现在无法测试,所以有点粗略。

    另一种方法是将WidthsGridViewColumns 绑定到ListView 的宽度,然后使用自定义转换器获取相应的一部分。

    【讨论】:

    • +1,Potentially Blend 可用于发现 GridView 的“模板”是什么样子,这可以重新设置列的样式。但是,我的直觉是,将Width 绑定到一个转换器,该转换器设置为ListView 的一半ActualWidth,这可能是不编写自己的ViewBase 的唯一方法。
    • @sixlettervariables 我试过了,它给了我一个水平滚动条。我想我需要的东西少于两半。
    • @Kugel:你可以强制关闭滚动条,反正你也不需要它,它只是一两个像素:P
    • 我尝试了 SharedSizeGroup 解决方案,但没有效果。
    • @SimonF:如果您希望它们在可用空间中隔开,请参阅此答案:stackoverflow.com/questions/4664008/…
    猜你喜欢
    • 1970-01-01
    • 2019-09-01
    • 2018-05-18
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多