Я строю проект, который загружает данные из веб-сервиса в элемент управления TreeView. Когда TreeView содержится в сетке LayoutRoot сам по себе, а его высота установлена на Auto, если содержимое выходит за пределы вертикальных или горизонтальных пределов полос прокрутки дерева, появляются автоматически, как и ожидалось.
Если тот же элемент управления TreeView находится внутри StackPanel, его поведение меняется. Когда данные выходят за их пределы, полоса прокрутки не появляется, и данные просто отрываются от края без доступа к ним. Если я вручную установлю высоту TreeView в этом сценарии, полосы прокрутки снова появятся, как и ожидалось.
Очевидно, что существует некоторое взаимодействие между StackPanel и TreeView, которое я не вижу.
Может кто-нибудь объяснить это и предложить подходящий способ справиться с ситуацией?
За запрос в комментариях:
Следующий XAML работает нормально и отображает полосы прокрутки, как и ожидалось (обратите внимание, что указана высота на TreeView):
<StackPanel >
<controls:TreeView ItemTemplate="{StaticResource MainEntryIndexTemplate}"
x:Name="CodeBookIndexTreeView" Height="500" />
</StackPanel>
Следующее также отображает полосы прокрутки, как и ожидалось (не обратите внимание на StackPanel, но для TreeView установлено значение Auto):
<controls:TreeView ItemTemplate="{StaticResource MainEntryIndexTemplate}"
x:Name="CodeBookIndexTreeView" Height="Auto" />
Наконец, этот код дает сбой, поскольку TreeView не будет отображать полосы прокрутки и прокрутки данных с нижней и / или правой стороны элемента управления (обратите внимание, что TreeView находится в StackPanel, а TreeView имеет значение Auto): 1017 *
<StackPanel >
<controls:TreeView ItemTemplate="{StaticResource MainEntryIndexTemplate}"
x:Name="CodeBookIndexTreeView" Height="Auto" />
</StackPanel>
Приветствия
Steve