2013-06-04 49 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添加更多內容,但我很懶。 –

相關問題