Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WPF ListView no scrollbar if height set to auto

Hi i have a ListView that binds to a collection. I set the height of the ListView to auto for it to take up all the space in the region. However there is not scrollbar after i set the height to auto. If i give it a height then the scrollbar would show up.

the markup is pretty much like the following

<Grid>
   <StackPanel>
      <Expander>
          <DataGrid>
      <Expander>
          <ListView>
like image 501
Eatdoku Avatar asked Jun 03 '11 00:06

Eatdoku


3 Answers

I have a hunch that your ListView is inside a panel that allows it to expand vertically without limit.

If you put a ListView inside a StackPanel, for example, the ListView's height can exceed the height of the StackPanel. The ListView has increased its height to show all its items, as far as it's concerned, thus no scrollbar.

However, if you change that StackPanel to a Grid, where controls automatically try to fit themselves inside that area, the ListView will automatically have a scrollbar when it contains more items than it can display.

This will probably be solved most simply by adjusting your layout that contains the ListView.

like image 187
Joel B Fant Avatar answered Oct 05 '22 21:10

Joel B Fant


Instead of setting

<RowDefinition Height="auto"/>

set:

<RowDefinition Height="1*"/>
like image 29
Sandeep Avatar answered Oct 05 '22 21:10

Sandeep


Why should it show a scrollbar if there is nothing to scroll?

If you want to override any default behavior you can set ScrollViewer.VerticalScrollBarVisibility="Visible" on the ListBox.

like image 28
H.B. Avatar answered Oct 05 '22 23:10

H.B.