我使用GridView在WinRT XAML应用程序中显示不同项目组的组.一切都很好,除了ItemsPanelTemplate使用一个包装网格,当它在空间外时垂直堆叠我的项目.
所以,我尝试使用StackPanel,如下所示:
<GroupStyle.Panel> <ItemsPanelTemplate> <StackPanel Orientation="Vertical" Visibility="Visible" /> </ItemsPanelTemplate> </GroupStyle.Panel>
这些项目是垂直堆叠的,这很好,但问题是我现在无法滚动它们,并且它们不适合屏幕.所以我尝试启用垂直滚动:
<GroupStyle.Panel> <ItemsPanelTemplate> <StackPanel Orientation="Vertical" Visibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollMode="Enabled"/> </ItemsPanelTemplate> </GroupStyle.Panel>
但这不起作用.
有关如何在GridView组内完成垂直滚动的任何建议?
编辑1:
我也试过这个:
<GroupStyle.Panel> <ItemsPanelTemplate> <ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollMode="Disabled" ZoomMode="Disabled" VerticalScrollMode="Enabled"> <StackPanel Orientation="Vertical" Visibility="Visible" /> </ScrollViewer> </ItemsPanelTemplate> </GroupStyle.Panel>
这会打破调试器,因为ItemsPanelTemplate需要一个面板作为子面板.
好的,我终于解决了!敬启者:
原文链接:https://www.f2er.com/windows/364469.html<GroupStyle.ContainerStyle> <Style TargetType="GroupItem"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="GroupItem"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <ContentPresenter Content="{TemplateBinding Content}" Grid.Row="0"/> <ItemsControl x:Name="ItemsControl2" ItemsSource="{Binding GroupItems}" Grid.Row="1"> <ItemsControl.Template> <ControlTemplate> <ScrollViewer x:Name="ScrollViewer" VerticalScrollBarVisibility="Hidden" VerticalScrollMode="Enabled" HorizontalScrollBarVisibility="Disabled" HorizontalScrollMode="Disabled"> <ItemsPresenter /> </ScrollViewer> </ControlTemplate> </ItemsControl.Template> </ItemsControl> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </GroupStyle.ContainerStyle>
使用网格确保ScrollViewer正确缩放非常重要.