我正在使用C#和XAML为Windows App Store编程(Windows 8.1)。 我在语义缩放中有一个ListView,当它的项目填满整个可见的地方时不会滚动。正如我通过研究发现的那样,问题很可能与封闭的ScrollViewer有关,或者静态设置Widths和Heights。
这是ListView:
<SemanticZoom.ZoomedOutView>
<Hub Header="Overview Panel">
<HubSection>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="120"/>
</Grid.ColumnDefinitions>
<StackPanel VerticalAlignment="Stretch" Grid.Column="1" Grid.Row="1">
<TextBlock Text="All Assignments" FontSize="24"/>
<ListView
ItemTemplate="{StaticResource AssignmentOverviewContentTemplate}"
ItemsSource="{Binding AllAssignmentsList}"
SelectionMode="None">
</ListView>
</StackPanel>
</Grid>
</DataTemplate>
</HubSection>
</Hub>
</SemanticZoom.ZoomedOutView>
</SemanticZoom>
我也尝试将以下内容添加到ListView中或将Alignments设置为Stretch但没有任何功能真正起作用:
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollMode="Disabled"
ScrollViewer.VerticalScrollMode="Enabled"
任何人都可以帮助我吗?我很抱歉,如果这是一个非常基本的问题,我现在还没有找到任何帮助我的东西。
非常感谢!
答案 0 :(得分:4)
我已经解决了这个问题。
发生这种情况是因为DataTemplate中没有Space-Limiting-Container。因此,我只需添加一个简单的网格,一切正常:
<Hub Header="Overview Panel">
<HubSection Width="{Binding ScreenWidthFourth}" Header="All Assignments">
<DataTemplate>
<Grid>
<ListView
ItemTemplate="{StaticResource AssignmentOverviewContentTemplate}"
ItemsSource="{Binding AllAssignmentsList}"
SelectionMode="None">
</ListView>
</Grid>
</DataTemplate>
</HubSection>
但请注意不要将ListView放入(在这种情况下)ListPanel中,因为StackPanel会为其子节点提供无限空间,因此永远不会启用滚动。
我仍然遇到的问题是ListView没有填充其所有垂直空间。但由于我还没有对此进行过任何研究,我将打开另一个Thread,以防我无法解决这个问题。
不管怎样,谢谢你。