У меня ниже XAML. Проблема, которую я не могу решить, заключается в том, что у меня есть средство просмотра с прокруткой, которое охватывает сетку, полную представлений (с фиксированной высотой), но не может заставить полосы прокрутки прокручивать содержимое длиннее, чем размер окна.
Я хочу, чтобы пользовательский элемент управления заполнил всю высоту окна, а также чтобы его можно было прокручивать, когда количество элементов управления сеткой больше, чем размер окна. Но если я не установлю высоту средства просмотра прокрутки вручную, то я никогда не получу прокручиваемую полосу прокрутки (вручную установленную в примере).
Я посмотрел другие примеры на сайте, но не смог найти правильный ответ (включая эту ссылку ).
XAML:
<UserControl d:DesignWidth="300" d:DataContext="{d:DesignInstance ViewModels:EntityViewModel}">
<StackPanel>
<Label Content=“text” />
<ScrollViewer Height="450" Width="250" VerticalScrollBarVisibility="auto">
<Grid>
<ItemsControl ItemsSource="{Binding Entities}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:EntityView DataContext="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</ScrollViewer>
</StackPanel>
</UserControl>
Edit:
Я добавляю дополнительный пример, который можно легко воссоздать. Нужно иметь возможность иметь прокручиваемый вид прокрутки с помощью панели док-станции (может быть сеткой), которая имеет больше содержимого, чем может поместиться на экране, на котором вставлен пользовательский элемент управления (что означает, что я не могу иметь фиксированный Размер на просмотрщик прокрутки).
<Window Title="MainWindow" Height="200" Width="300">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<Label Content="title"/>
<ScrollViewer>
<DockPanel>
<Label DockPanel.Dock="Top" Content="title" HorizontalContentAlignment="Center" />
<Label DockPanel.Dock="Top" Content="title" HorizontalContentAlignment="Center" />
<Label DockPanel.Dock="Top" Content="title" HorizontalContentAlignment="Center" />
<Label DockPanel.Dock="Top" Content="title" HorizontalContentAlignment="Center" />
<Label DockPanel.Dock="Top" Content="title" HorizontalContentAlignment="Center" />
<Label DockPanel.Dock="Top" Content="title" HorizontalContentAlignment="Center" />
<Label DockPanel.Dock="Top" Content="title" HorizontalContentAlignment="Center" />
</DockPanel>
</ScrollViewer>
</StackPanel>
</Grid>
</Window>