2013-06-04 47 views
1

我们如何让ListView表现正常?我试图在我的ListView内垂直滚动,而且我最终能够垂直滚动某些内容,但ListView不断向高度方向扩展!并且设置MaxHeight不会执行任何操作。当ListView为VerticalAlignment =“Stretch”时,在ListView内垂直滚动

<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> 

我不知所措。请帮忙。我如何才能让listview仅仅垂直滚动,而且永远不会改变高度,并且永不显示水平滚动条?

回答

3

删除StackPanel。这可以防止ListView(或任何其他儿童)具有分隔大小。这就是为什么你没有得到任何滚动条,因为ListView有一个无限的高度,由StackPanel布局。

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

编辑:同时删除ScrollViewer,因为ListView已经有一个ScrollViewer在它的默认模板。除非你已经为此改变了默认的ControlTemplate

+0

谢谢HighCore。我原本打算给StackPanel添加更多内容,但我很懒。 –

相关问题