WPF ListView нет полосы прокрутки, если высота установлена на авто
Привет, у меня есть ListView, который связывается с коллекцией. Я установил высоту списка ListView для автоматического захвата всего пространства в регионе. Однако нет полосы прокрутки после того, как я установил высоту в auto. Если я дам ему высоту, появится полоса прокрутки.
разметка в значительной степени похожа на следующую
<Grid>
<StackPanel>
<Expander>
<DataGrid>
<Expander>
<ListView>
Ответы
Ответ 1
У меня есть догадка, что ваш ListView
находится внутри панели, что позволяет ей неограниченно расширяться.
Если вы помещаете ListView
внутри a StackPanel
, например, высота ListView
может превышать высоту StackPanel
. ListView
увеличил свою высоту, чтобы показать все его элементы, насколько это касается, и, таким образом, нет полосы прокрутки.
Однако, если вы измените этот StackPanel
на Grid
, где элементы управления автоматически попытаются поместиться внутри этой области, ListView
будет автоматически иметь полосу прокрутки, когда она содержит больше элементов, чем она может отображать.
Это, вероятно, будет проще всего решить, отредактировав макет, содержащий ListView
.
Ответ 2
Вместо установки
Height="Auto"
set:
Height="1*"
Ответ 3
Зачем ему показывать полосу прокрутки, если нет прокрутки?
Если вы хотите переопределить любое поведение по умолчанию, вы можете установить ScrollViewer.VerticalScrollBarVisibility="Visible"
в ListBox.