I am using GridView for displaying groups of different sets of items in a WinRT XAML app. Everything works well, except that the ItemsPanelTemplate uses a wrapping grid which stacks my items vertically when it's out of space.
So, I tried to use StackPanel, like this:
<GroupStyle.Panel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" Visibility="Visible" />
</ItemsPanelTemplate>
</GroupStyle.Panel>
The items are stacked vertically, and that's great, but the problem is now that I can't scroll them, and they don't fit on the screen. So I tried enabling vertical scrolling:
<GroupStyle.Panel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" Visibility="Visible"
ScrollViewer.VerticalScrollBarVisibility="Visible"
ScrollViewer.VerticalScrollMode="Enabled"/>
</ItemsPanelTemplate>
</GroupStyle.Panel>
But that doesn't work. Any suggestions how to accomplish vertical scrolling inside GridView group?
EDIT 1:
I have also tried this:
<GroupStyle.Panel>
<ItemsPanelTemplate>
<ScrollViewer VerticalScrollBarVisibility="Visible"
HorizontalScrollMode="Disabled"
ZoomMode="Disabled"
VerticalScrollMode="Enabled">
<StackPanel Orientation="Vertical" Visibility="Visible" />
</ScrollViewer>
</ItemsPanelTemplate>
</GroupStyle.Panel>
This breaks the debugger as the ItemsPanelTemplate needs a panel as a child.
OK, I finally solved it! To whom it may concern:
It's important that you use the Grid to make sure that the ScrollViewer scales correctly.
What about this?
It renders elements like this:
Item 1 Item 2
Item 3 Item 4
You may also wants to set the ZoomMode of the ScrollViewer to Disabled :)
Regards
I would place your elements inside a scroll viewer directly. Like this:
I hope this helps, Lance