wpf - ListView 列自动调整大小

标签 wpf listview autosize

假设我有以下 ListView:

<ListView ScrollViewer.VerticalScrollBarVisibility="Auto">
  <ListView.View>
    <GridView>
      <GridViewColumn Header="Something" 
                      DisplayMemberBinding="{Binding Path=ShortText}" />
      <GridViewColumn Header="Description"
                      DisplayMemberBinding="{Binding Path=VeryLongTextWithCRs}" />
      <GridViewColumn Header="Something Else" 
                      DisplayMemberBinding="{Binding Path=AnotherShortText}" />
    </GridView>
  </ListView.View>
</ListView>

我希望短文本列始终适合屏幕,而长文本列使用剩余空间,必要时自动换行。

这可能吗?

最佳答案

使用 GridListView 没有简单的方法可以做到这一点,因为它不支持将列的宽度设置为“*”(填充剩余空间)。

Here是关于如何通过使用 IValueConverter 将列的宽度设置为 TotalListWidth - SumOfColumnWidths 来伪造它的讨论

另一方面,您是否考虑过使用 DataGrid反而?这将支持您正在寻找的布局类型,尽管是一个相当重的控件。它也仅在 .NET 4 中是 native 的 - 尽管您可以通过 WPF Toolkit 获得 3.5 的等效项.

关于wpf - ListView 列自动调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2834971/

相关文章:

c# - 在 FlowDocument 中选择 WPF UIElement

Android:提取列表中TextView的字符串

c# - 设置 DatePicker 值

c# - 在csproj文件中配置XamlRuntime和DefaultXamlRuntime意义

android - FirebaseListAdapter 完成时如何得到通知?

c# - WPF - GridView.GridViewColumn 每行两行?

html - 3 或 2 列布局取决于实际内容

c# - Windows Mobile 使用面板自动调整大小

xcode - 如何像这样的 InterfaceBuilder 设置自动调整标签大小?

c# - 使用来自另一个合并词典的合并词典中定义的样式