Рассмотрим следующий сценарий, представляющий список элементов с левой стороны и детали выбранного элемента с правой стороны:
<ScrollViewer Name="scroll1" >
<DockPanel>
<ScrollViewer Name="scroll2" DockPanel.Dock="Left" >
<Really Long List Box />
</ScrollViewer>
<Selected Item Details />
</DockPanel>
</ScrollViewer>
(В приведенном выше коде scroll2 всегда отключен.)
В некоторых случаях высота «Детали выбранного элемента» может превышать высоту окна.В этих случаях scroll1 должен быть включен.Но в большинстве случаев это не так.Единственный элемент управления больше, чем высота окна - это «Действительно длинный список», поэтому должен быть включен только scroll2.
Я знаю, что самый простой способ - это поместить scroll1 прямо над «Подробная информация о выбранном элементе» следующим образом:
<ScrollViewer Name="scroll1" >
<Selected Item Details />
</ScrollViewer>
Но это внутренняя структура, которая разделена на несколько элементов UserControls, а элемент управления scroll1 служит только в качестве фейсхолдера для дочерних элементов управления, поэтому я не могу его удалить.
Есть ли способ?включить только scroll2, когда в окне помещается «Сведения о выбранном элементе»?