I\'m developing an UWP app and I\'m trying to align horizontally my items in each gridview groups
I have this :
GROUP 1
Data 1 | Data 2 | Data 3
D
You can get what you want by setting GroupStyle.Panel property. This property sets a template that creates the panel used to lay out the items. But GridViewItem has two templates, when the GridView's ItemsPanel is an ItemsWrapGrid (the default) or ItemsStackPanel, GridViewItem uses the template which uses a GridViewItemPresenter instead of a UIElement tree to improve grid performance. And while using this template, setting GroupStyle.Panel property won't affect the GridView. We need GridViewItem use its second template by setting GridView's ItemsPanel to some other Panel. As your group is aligned vertically, we can set GridView's ItemsPanel to:
Then we can set GroupStyle.Panel with a left Margin to achieve your goal. But please note that:
The root element of the template declared for the ItemsPanelTemplate in the GroupStyle.Panel property cannot be a virtualizing panel. Virtualizing panels are defined as any type that derives from
VirtualizingPanel, for example theVirtualizingStackPanelclass.
So we can't use WrapGrid here, we can use a StackPanel but the items will be arranged into a single line. To arrange items into multi lines, we need a Panel like WrapPanel in WPF. We can customize it or use a third party WrapPanel like what in WinRTXamlToolkit. Using WinRTXamlToolkit for example:
xmlns:toolkit="using:WinRTXamlToolkit.Controls"
The complete XAML code may like:
Following is the output when I tested in my side: