WPF ListView нет полосы прокрутки, если высота установлена ​​на авто - PullRequest
21 голосов
/ 03 июня 2011

Привет, у меня есть ListView, который привязывается к коллекции. Я установил высоту ListView на авто, чтобы он занимал все пространство в регионе. Однако после того, как я установил высоту на авто, полоса прокрутки отсутствует. Если я укажу его высоту, то появится полоса прокрутки.

разметка очень похожа на следующую

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

Ответы [ 3 ]

51 голосов
/ 03 июня 2011

У меня есть догадка, что ваш ListView находится внутри панели, которая позволяет ему расширяться вертикально без ограничения.

Если вы поместите ListView внутри StackPanel, например, * 1006Высота * может превышать высоту StackPanel.ListView увеличил свою высоту, чтобы показать все свои элементы, поэтому он не имеет полосы прокрутки.

Однако, если вы измените это StackPanel на Grid, где элементы управления автоматически пытаютсявписываясь в эту область, ListView автоматически будет иметь полосу прокрутки, когда она содержит больше элементов, чем может отображать.

Вероятно, это будет решено наиболее просто путем настройки макета, содержащего ListView.

8 голосов
/ 04 февраля 2014

Вместо настройки

<RowDefinition Height="auto"/>

установлено:

<RowDefinition Height="1*"/>
4 голосов
/ 03 июня 2011

Зачем показывать полосу прокрутки, если прокручивать нечего?

Если вы хотите переопределить любое поведение по умолчанию, вы можете установить ScrollViewer.VerticalScrollBarVisibility="Visible" в ListBox.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...