Uwp Grouped GridView with WrapGrid

前端 未结 1 1309
长发绾君心
长发绾君心 2020-12-22 04:18

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         


        
1条回答
  •  天涯浪人
    2020-12-22 04:57

    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 the VirtualizingStackPanel class.

    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:

    0 讨论(0)
提交回复
热议问题