Я пытаюсь построить окно имеет три элемента управления списком данных с неопределенной длиной. Я хочу, чтобы все три были в пределах одного прокрутки.WPF несколько списков в одном scrollviewer
Проще говоря, следующий код: как я хочу, чтобы он работал. Конечно, результатом примера кода xaml является то, что содержимое scrollviewer выходит за пределы окна и не прокручивается.
Я попытался использовать управление сеткой, но это не сработало, как надеялось. Я не хочу иметь фиксированные высоты и отдельные полосы прокрутки для каждого из списков, так как могут быть переменные объемы данных, и это приведет к ненужной прокрутке.
Может ли кто-нибудь предоставить способ отображения нескольких списков переменных содержимого в пределах одной полосы прокрутки?
<Window x:Class="AmultiListTest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:SomeNamespace"
mc:Ignorable="d"
Title="AmultiListTest"
Height="300"
Width="300">
<StackPanel>
<ScrollViewer>
<StackPanel Height="250">
<Label>List number one</Label>
<ListView>
<ListViewItem>list 1 Item 1</ListViewItem>
<ListViewItem>list 1 Item 2</ListViewItem>
<ListViewItem>list 1 Item 3</ListViewItem>
<ListViewItem>list 1 Item 4</ListViewItem>
<ListViewItem>list 1 Item 5</ListViewItem>
<ListViewItem>list 1 Item 6</ListViewItem>
<ListViewItem>list 1 Item 7</ListViewItem>
<ListViewItem>list 1 Item 8</ListViewItem>
<ListViewItem>list 1 Item 9</ListViewItem>
</ListView>
<Label>List number two</Label>
<ListView>
<ListViewItem>list 2 Item 1</ListViewItem>
<ListViewItem>list 2 Item 2</ListViewItem>
<ListViewItem>list 2 Item 3</ListViewItem>
<ListViewItem>list 2 Item 4</ListViewItem>
<ListViewItem>list 2 Item 5</ListViewItem>
<ListViewItem>list 2 Item 6</ListViewItem>
</ListView>
<Label>List number three</Label>
<ListView>
<ListViewItem>list 3 Item 1</ListViewItem>
<ListViewItem>list 3 Item 2</ListViewItem>
<ListViewItem>list 3 Item 3</ListViewItem>
<ListViewItem>list 3 Item 4</ListViewItem>
</ListView>
</StackPanel>
</ScrollViewer>
</StackPanel>
Только от верхней части моей головы, я предлагаю вам попробовать удаление фиксированной высоты 250 из внутренней StackPanel и изменение внешней StackPanel на сетку. Сетка будет соответствовать размеру ее родителя (в этом случае Окно). Это заставит содержимое Grid (ScrollViewer) соответствовать размеру сетки, что приведет к прокручиванию поведения ScrollViewer. Если это не сработает, по крайней мере, вы не потратите много времени на это. –
И удалите внешний StackPanel - вы даете ему бесконечную высоту. Используйте сетку. – Paparazzi