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