WPF根据列表视图内容调整网格高度

时间:2009-09-15 23:27:55

标签: wpf listview height

我有一个包含多行的listview,问题是即使垂直滚动条可见,它也不起作用,我解释一下,似乎因为网格高度为Auto,所以没有最大高度,所有显示内容,即使其中一部分不可见,我发现的唯一部分解决方案是将像素高度设置为网格,如600,然后您可以滚动列表视图的内容,但显然这是不是一个非常好的解决方案,因为我希望高度由它的容器定义,我试图将height属性绑定到TabItem的ActualHeight,但这也不起作用,我很绝望,所以如果有人知道如何解决这个问题我非常感谢,提前谢谢。

下面基本上是我正在使用的代码。

<TabItem Header="Orders">
     <Grid Height="Auto">
         <ScrollViewer>
              <ListView ScrollViewer.VerticalScrollBarVisibility="Visible"
                        ScrollViewer.CanContentScroll="True" >
               </ListView>
          </ScrollViewer>
     </Grid>
</TabItem>

3 个答案:

答案 0 :(得分:1)

我认为问题是你的高度=“自动”正在增长网格以显示所有行 使用平均值填充容器(选项卡)

将网格行高度和宽度设置为*
   <Grid.RowDefinitions>
        <RowDefinition Height="*"></RowDefinition>
   </Grid.RowDefinitions>
   <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"></ColumnDefinition>
   </Grid.ColumnDefinitions>
   <Listview Grid.Row="0" Grid.Column="0" />

答案 1 :(得分:0)

我认为问题可能是你有一个滚动查看器围绕一个控件(ListView),它有一个内置的滚动查看器。尝试删除外部ScrollViewer。

答案 2 :(得分:0)

实际上listview有一个内置的滚动查看器,所以我删除了它,但问题仍然以同样的方式存在,现在我有以下内容:

<TabItem Header="Orders">
     <Grid Height="Auto" Margin="0,0,0,0">
          <ListView ItemsSource="{Binding}" HorizontalAlignment="Stretch" 
                    x:Name="listViewOrdenes" 
                    ScrollViewer.VerticalScrollBarVisibility="Visible">
          </ListView>
     </Grid>
 </TabItem>