如果高度设置为auto,WPF ListView没有滚动条

时间:2011-06-03 00:19:25

标签: wpf listview layout scrollbar

您好我有一个绑定到集合的ListView。我将ListView的高度设置为auto,以便占用该区域中的所有空间。但是,在将高度设置为auto后,没有滚动条。如果我给它一个高度,那么滚动条就会显示出来。

标记非常类似于以下

<Grid>
   <StackPanel>
      <Expander>
          <DataGrid>
      <Expander>
          <ListView>

3 个答案:

答案 0 :(得分:50)

我预感到您的ListView位于面板内部,允许它无限制地垂直展开。

例如,如果您在ListView内加StackPanel,则ListView的身高可能会超过StackPanel的身高。 ListView已增加其高度以显示其所有项目,就其而言,因此没有滚动条。

但是,如果您将StackPanel更改为Grid,其中控件会自动尝试让自己适合该区域,ListView会在包含更多项目时自动拥有滚动条它可以显示。

这可能最简单地通过调整包含ListView

的布局来解决

答案 1 :(得分:8)

而不是设置

<RowDefinition Height="auto"/>

设置:

<RowDefinition Height="1*"/>

答案 2 :(得分:4)

如果没有要滚动的内容,为什么要显示滚动条?

如果要覆盖任何默认行为,可以在ListBox上设置ScrollViewer.VerticalScrollBarVisibility="Visible"