VerticalAlignment = «Stretch» растягивается из моего контейнера

#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 на a Grid , и все работает. : D