Когда я помещаю ListBox в ScrollViewer, если я не определяю атрибут Height для ListBox, он не прокручивается (за исключением небольшого подпрыгивания вверх и вниз), поэтому элементы за пределами экрана недоступны. Если я установлю для атрибута Height в ListBox фактическую высоту, которую он занимает на экране, он отлично прокручивается. Если я не понимаю высоту, она не прокручивается должным образом, например. Возможно, мне не удастся добраться до нижних элементов списка.
При размещении других элементов в сетке LayoutRoot Grid с одним столбцом выше и ниже ScrollViewer / ListBox я устанавливаю RowDefinition.Height = "Auto" для всех строк, кроме ScrollViewer, который получает "*". Кажется, что сетка правильно распределяет пространство соответственно. За исключением того, что я априори не знаю, сколько места занимает ScrollViewer / ListBox.
Часть A: Почему я должен устанавливать высоту в ListBox, разве его (виртуальная) высота не зависит от количества элементов?
Часть B: Похоже, мне нужно вручную разложить высоту строк сетки, а затем вручную переделать их, если требуется изменить размер шрифта или другое изменение стиля. Так ли это? Такой подход кажется фальшивым.