【问题标题】:How to resize Listview and TreeView with window resize wpf如何使用窗口调整大小 wpf 调整 Listview 和 TreeView 的大小
【发布时间】:2013-06-24 00:52:07
【问题描述】:

我有一个包含这些列和行定义的网格

<Grid.ColumnDefinitions>
  <ColumnDefinition Width="Auto"
                    MinWidth="154" />
  <ColumnDefinition Width="Auto"
                    MinWidth="175" />
  <ColumnDefinition />
  <ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
  <RowDefinition Height="Auto" />
  <RowDefinition Height="Auto" />
  <RowDefinition Height="*" />
</Grid.RowDefinitions>

在网格内我有一个 Listview,它有一个(gridview)。

<ListView Grid.Column="0"
          Grid.Row="2"
          Name="ListView"
          ItemsSource="  {Binding MessageFields}"
          Margin="10,12,0,-5"
          Grid.ColumnSpan="3">
  <ListView.View>
    <GridView>
      <GridViewColumn Width="100">
        <GridViewColumnHeader Content="{StaticResource IdColumnContent}" />
      </GridViewColumn>
      <GridViewColumn Width="100">
        <GridViewColumnHeader Content="{StaticResource CodeColumnContent}" />

      </GridViewColumn>
      <GridViewColumn Width="Auto">
        <GridViewColumnHeader Content="{StaticResource NameColumnContent}" />

      </GridViewColumn>
      <GridViewColumn Width="100">
        <GridViewColumnHeader Content="{StaticResource PositionColumnContent}" />

      </GridViewColumn>
      <GridViewColumn Width="100">
        <GridViewColumnHeader Content="{StaticResource MappedListColumnContent}" />

      </GridViewColumn>
      <GridViewColumn>
        <GridViewColumnHeader Content="{StaticResource MappingRuleColumnContent}" />

      </GridViewColumn>
    </GridView>
  </ListView.View>

在网格内我也有一个 TreeView

   <TreeView 
   Grid.Column="3"  Grid.Row="2" ItemsSource="{Binding ,  Mode=TwoWay}">

当我最大化我的窗口时,我的树视图会停留在它的位置,但会根据窗口调整大小。 但是我的 Listview 它随窗口扩展,但我的最后一列随窗口扩展,当我减小/恢复窗口大小时,它会缩小。 如何使网格和树在窗口调整大小时适当拉伸?

【问题讨论】:

  • 您在第 2 行第 3 列中都有它们?首先不要将它们放在同一行和同一列中。
  • @Blam 我更改了放置列表视图的位置,但它仍然是相同的,另一件事是列表视图在右侧添加了额外的列,即保持拉伸的列
  • 显示网格行和列def和更新的ListView TreeView
  • @Blam 我用我更改的内容更新了原始帖子
  • 需要行列定义

标签: wpf xaml


【解决方案1】:

基本上,GridView 中的最后一个“列”正在填充窗口中的剩余空间?而且它实际上不是一个列,而只是一个空白空间?

如果是这种情况,您应该查看答案 WPF : Extend last column of ListView's GridView

不过,我个人会放弃 ListView/GridView,而使用 DataGrid(如果您使用的是 .net 4 或更高版本)。

【讨论】:

  • 是的,由我没有创建的列表视图生成的最后一列..它没有标题,但它占用空间作为最后一列,这就是占用空间和拉伸的列。 DataGrid 对我很有用,但我将其更改为 listview 以满足其他要求。
  • 好的,ListView 的默认行为是用标题背景填充空间。它实际上不是一个列。而且它默认不支持 * size 列。这就是为什么我向您指出另一个问题的答案。它显示了 GridView 限制的 2 个解决方法。
猜你喜欢
  • 2015-01-19
  • 1970-01-01
  • 2011-03-30
  • 2011-02-13
  • 2021-09-20
  • 1970-01-01
  • 2019-05-15
  • 1970-01-01
  • 2011-10-01
相关资源
最近更新 更多