2013-11-15 57 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将自动适应父控件提供的所有空间。