我使用的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中正确秤是很重要的。
那这个呢?
它呈现这样的内容:
项目1个项目2
项目3项目4
<ListView Width="200">
<ListBoxItem>
<TextBlock>Item 1</TextBlock>
</ListBoxItem>
<ListBoxItem>
<TextBlock>Item 2</TextBlock>
</ListBoxItem>
<ListBoxItem>
<TextBlock>Item 3</TextBlock>
</ListBoxItem>
<ListBoxItem>
<TextBlock>Item 4</TextBlock>
</ListBoxItem>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
我会直接发生在一个滚动查看器中的元素。 像这样:
<GroupStyle.Panel>
<ItemsPanelTemplate>
<ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollMode="Disabled" ZoomMode="Disabled" VerticalScrollMode="Enabled">
<StackPanel Orientation="Vertical" Visibility="Visible" />
</ScrollViewer>
</ItemsPanelTemplate>
我希望这有助于兰斯
您还可能想要设置的ScrollViewer的ZoomMode为禁用:)
问候