堆栈面板中的WPF XAML树视图 - 没有滚动?

时间:2017-03-11 19:59:13

标签: wpf xaml

所以我的XAML中有一个TreeView控件。它工作正常。如果我将树视图扩展为大于它所驻留的用户控件,我会得到一个滚动条,这很好。但是,在这个用户控件里面我想要一些其他的东西。所以我将树视图放在一个堆栈面板中,其他一些东西,这次我没有得到滚动条,如果树视图扩展到大于用户控件的位置。

这是其他人遇到过的问题,是否有解决方法?

2 个答案:

答案 0 :(得分:2)

将您的stackpanel嵌入ScrollViewer:stackoverflow.com/a/6250287/7517676。您可能还必须根据需要显式设置VerticalScrollBarVisibility和Horizo​​ntalScrollBarVisibility。 这是一个代码示例:

<ScrollViewer VerticalScrollBarVisibility="Auto">
  <StackPanel ... />
</ScrollViewer>

答案 1 :(得分:0)

基于 this answer,StackPanel 不是 TreeView 的正确容器,但 Grid 是。因此,这将启用在 TreeView 内通过鼠标和滚动条滚动:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="30"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Label>Some descriptive label.</Label>
    <TreeView Grid.Row="1" ItemsSource="{Binding SomeSource, Mode=OneWay}">
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate DataType="{x:Type local:MyNodeType}" ItemsSource="{Binding Children}">
                <Label Content="{Binding NodeName}"/>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
    </TreeView>
</Grid>