我使用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需要一个面板作为子面板.
好的,我终于解决了!敬启者:
<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正确缩放非常重要.
原文地址:https://www.jb51.cc/windows/364469.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。