Вы говорите: «Все ячейки обеих сеток не имеют спецификаций размера (Авторазмер)» - вот в чем проблема. Когда ячейка grid
имеет размер auto
, grid
дает содержимому в этой ячейке столько места, сколько ему нужно (не имеет значения, помещается ли оно в окне или нет). Чтобы исправить это, вы должны положить свой DataGrid
в клетку размером со звезду.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border Grid.Row="0">
<!-- Content that will take as much space as it wants -->
</Border>
<Border Grid.Row="1">
<!-- Content that will take all the remaining space -->
</Border>
</Grid>
ОБНОВЛЕНИЕ: На основе предоставленных вами скриншотов ...
Во-первых, избавьтесь от DockPanel
в элементе управления верхнего уровня. DockPanel
дает своему ребенку все пространство, которое он запрашивает. Если это не «заполняющий» дочерний элемент (LastChildFill="True"
). Используйте grid
вместо DockPanel
(т. Е. На верхнем уровне a grid
с двумя строками - один с автоматическими размерами для меню и второй с размером звездочки для остальных элементов, в этом ряду звездного размера поставить еще один grid
для вас элементы управления и т. д.).
Помните, что всякий раз, когда вы помещаете содержимое в ячейку автоматического размера в сетке или в DockPanel
с типом стыковки, отличным от Fill
, содержимое будет занимать столько места, сколько требуется, без отображения полосы прокрутки (оно выйдет за окно).
ОБНОВЛЕНИЕ 2: Просмотр новых скриншотов (см. Комментарии к этой записи) ...
ОК, я думаю, что вижу проблему. Дело в том, что ItemsControl
использует StackPanel
для отображения своих дочерних элементов, но StackPanel
также предоставляет своим дочерним элементам все необходимое пространство (ваш DataGrid
считает, что у него достаточно места для рендеринга без полос прокрутки).
Чтобы исправить это, вам нужно поместить элементы управления в ScrollViewer
следующим образом:
<ScrollViewer VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto">
<ItemsControl ... />
</ScrollViewer>