2013-11-15 95 views
0

在Windows 8.1應用程序(.NET 4.5)中,我有(跨越兩個模板,因爲綁定)一個包含一個包含ListPanel的StackPanel的Grid。 問題是,ListView不能用可用空間進行縮放,而是顯示滾動條。GridView裏面的StackPanel裏面的ListView沒有縮放

<Grid DataContext="{Binding}"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> <!-- IF I set MinHeight here, it grows --> 
    </Grid.RowDefinitions> 
    <TextBlock Grid.Row="0"/> 
    <ListView 
      Grid.Row="1" 
      Margin="10" 
      ItemsSource="{Binding ementas}" 
      ItemTemplate="{StaticResource temp1}" 
      SelectionMode="None" 
      IsItemClickEnabled="False" 
      IsSwipeEnabled="False"> 
    </ListView> 
</Grid> 

模板爲ListView

<StackPanel Width="310" Margin="5,10,5,10" DataContext="{Binding}"> 
    <TextBlock Text="{Binding data}" Style="{StaticResource TitleTextBlockStyle}"/> 
    <ListView SelectionMode="None" 
      IsItemClickEnabled="False" 
      ItemsSource="{Binding pratos}" 
      ItemTemplate="{StaticResource temp2}" 
      IsSwipeEnabled="False"> 
    </ListView> 
</StackPanel> 

而對於第二個ListView控件模板

<TextBlock Text="{Binding descricao}" 
    Margin="5" 
    Style="{StaticResource BodyTextBlockStyle}" 
    TextWrapping="WrapWholeWords"/> 

截圖: Screenshot

我想用滾動條ListView控件讓它的尺寸適合內容,只有滾動l如果屏幕空間不足。

回答

2

這是一個非常普遍的問題......在StackPanel調整其內容,以適應像Grid父控件一樣。解決方案很簡單...除了最簡單的排隊幾個控制職責之外,不要使用StackPanel。而不是這樣,使用Grid將自動適應父控件提供的所有空間。