#wpf #xaml
#wpf #xaml
Вопрос:
У меня есть родительский контейнер, который используется для хранения всех моих пользовательских элементов управления. Проблема в том, что я использую VerticalAlignment="Stretch"
для растягивания содержимого на всю высоту и получения вертикальной полосы прокрутки, пользовательский элемент управления слишком сильно растягивается. Появляется вертикальная полоса прокрутки, но прокрутка невозможна. Я знаю это, потому что стрелка вниз для полосы прокрутки не видна.
У меня есть <ContentControl Content="{Binding Workspace}" />
, где могут быть назначены различные элементы управления. Например, вот XAML, который не является рабочим свойством в отношении растяжения.
<StackPanel>
<TextBlock Text="{Binding FoundCount}" FontSize="13" Foreground="#666" Margin="0 0 0 8" />
<ScrollViewer VerticalAlignment="Stretch">
<TreeView
ItemsSource="{Binding Listing}"
Grid.Row="1"
BorderThickness="0"
VirtualizingStackPanel.IsVirtualizing="True" />
</ScrollViewer>
</StackPanel>
Я только хочу TreeView
растянуть и отобразить вертикальную полосу прокрутки.
Есть идеи?
Комментарии:
1. Похоже, что они придают «Stretch» совершенно новое значение;-P
Ответ №1:
Я подозреваю, что высота StackPanel не ограничена, поэтому она растет, чтобы вместить средство просмотра прокрутки. Вы можете проверить это, поместив границу на StackPanel.
<Border>
<StackPanel>
<TextBlock Text="{Binding FoundCount}" FontSize="13" Foreground="#666" />
<ScrollViewer VerticalAlignment="Stretch">
<TreeView ItemsSource="{Binding Listing}" BorderThickness="0"
VirtualizingStackPanel.IsVirtualizing="True" />
</ScrollViewer>
</StackPanel>
</Border>
Комментарии:
1. Потрясающе! Спасибо. Я заменил свой
StackPanel
на aGrid
, и все работает. : D