Подтвердить что ты не робот

WPF ListView нет полосы прокрутки, если высота установлена ​​на авто

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

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

<Grid>
   <StackPanel>
      <Expander>
          <DataGrid>
      <Expander>
          <ListView>
4b9b3361

Ответ 1

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

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

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

Это, вероятно, будет проще всего решить, отредактировав макет, содержащий ListView.

Ответ 2

Вместо установки

Height="Auto"

set:

Height="1*"

Ответ 3

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

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