1

我们如何ListView使行为正确?我试图在我的内部垂直滚动ListView,我最终能够得到垂直滚动的东西,但是ListView高度不断扩大!并且设置MaxHeight没有任何作用。

    <StackPanel x:Name="ActivityLog" Margin="0, 201, 0, 0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <ScrollViewer ScrollViewer.VerticalScrollBarVisibility="Visible">
            <ListView x:Name="ActivityList" ItemsSource="{Binding Activities}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" BorderBrush="{x:Null}" HorizontalContentAlignment="Center" FontSize="14">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Message}" Background="{x:Null}" HorizontalAlignment="Stretch" Padding="5" TextAlignment="Center" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True" />
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </ScrollViewer>
    </StackPanel>

我很茫然。请帮忙。如何让列表视图仅垂直滚动,并且从不改变高度,并且从不显示水平滚动条?

4

1 回答 1

3

删除StackPanel. 这可以防止ListView(或任何其他孩子)有一个定界的大小。这就是为什么您没有得到任何滚动条的原因,因为ListViewStackPanel 的布局具有无限的高度。

此外,StackPanel只有一个孩子是没有意义的。它应该“堆叠”它的孩子。

编辑:同时删除ScrollViewer,因为根据默认模板ListView已经有一个ScrollViewer内部。当然,除非您为此更改了默认值ControlTemplate

于 2013-06-04T23:18:15.553 回答