У меня есть вопрос о компоновке со списком внутри прокрутки.Как только просмотр списка находится внутри средства просмотра прокрутки, он использует свой максимальный размер и не прокручивает сам себя, потому что средство просмотра прокрутки предлагает неограниченное количество пространства элементам управления внутри него.Проблема в том, что элементы управления, которые находятся под длинным списком, видны, только если пользователь прокручивает страницу вниз, и я хочу, чтобы просмотр списка использовал только необходимое пространство и саму полосу прокрутки.Картинки говорят больше информации, чем слова (ссылки на картинки тоже говорят о многом, поскольку моя репутация еще не в 10 лет. Edit2: ну, я могу использовать только одну ссылку, поэтому я скопировал все картинки на одну).Если списки не длинные, все в порядке:
Изображение 1:
Теперь, если список длиннее, элементы управления ниже перемещаются в невидимую землю:
Изображение 2: см. Ссылку с рисунка 1
То, что я хочу сделать сейчас, это:
Изображение 3: см. Ссылку с рисунка 1
Это само по себе недействительно проблема, потому что мы могли бы поместить все в док-панель и прикрепить элементы управления ниже к Dock.Below и Top to Top и позволить списку заполнить центр "lastchildfill".Теперь о реальной проблеме.Что если окно станет меньше?Затем сначала исчезает вид списка, а затем и все остальное без полосы прокрутки для перехода к элементам управления внизу.
Изображение 4: см. Ссылку с рисунка 1
Идеальное решение Я ищу, чтобы иметь полосы прокрутки в окне (или root scrollviewer), которые позволили бы нам прокручивать до каждой секции окна, как это, и просто иметь внешние полосы прокрутки, чтобы быть видимыми, когда все будет минимального размера.
Рисунок 5: см. Ссылку с картинки 1
ЛЮБЫЕ ИДЕИ?слишком много картинок?Вот немного xaml для всех, чтобы попытаться заставить его работать (это просто быстрый пример Windows ...)
<Window x:Class="WpfTest1.ScrollTestWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="ScrollTestWindow" Height="400" Width="700">
<ScrollViewer >
<DockPanel LastChildFill="True" ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Visible">
<Grid DockPanel.Dock="Top">
<TextBlock Text="Example controls above listview" Background="LightGray" FontSize="30"></TextBlock>
</Grid>
<Grid DockPanel.Dock="Bottom">
<TextBlock Text="Example controls below listview" Background="LightGray" FontSize="30"></TextBlock>
</Grid>
<ListView FontSize="30">
<ListView.View>
<GridView>
<GridViewColumn Width="190" Header="Date" />
<GridViewColumn Width="200" Header="Day Of Week" DisplayMemberBinding="{Binding DayOfWeek}" />
<GridViewColumn Width="120" Header="Year" DisplayMemberBinding="{Binding Year}" />
</GridView>
</ListView.View>
<sys:DateTime>1/1/1</sys:DateTime>
<sys:DateTime>1/1/1</sys:DateTime>
<sys:DateTime>1/1/1</sys:DateTime>
<sys:DateTime>1/1/1</sys:DateTime>
<sys:DateTime>1/1/1</sys:DateTime>
<sys:DateTime>1/1/1</sys:DateTime>
<sys:DateTime>1/1/1</sys:DateTime>
<sys:DateTime>1/1/1</sys:DateTime>
</ListView>
</DockPanel>
</ScrollViewer>