使用WrapGrid的Uwp Grouped GridView
我正在开发一个UWP应用程序,我试图在每个gridview组中对齐我的项目
我有这个 :
GROUP 1 Data 1 | Data 2 | Data 3 Data 1 | Data 2 | Data 3 Data 1 | Data 2 | Data 3 GROUP 2 Data 1 | Data 2 | Data 3 Data 1 | Data 2 | Data 3
我想要这个:
GROUP 1 ______________________________Data 1 | Data 2 | Data 3 ______________________________Data 1 | Data 2 | Data 3 ______________________________Data 1 | Data 2 | Data 3 GROUP 2 ______________________________Data 1 | Data 2 | Data 3 ______________________________Data 1 | Data 2 | Data 3
我命令对齐我的项目我使用WrapGrid。 我也试过非分组gridview,我的代码工作正常。
请你帮助我好吗 ?
提前致谢
您可以通过设置GroupStyle.Panel
属性来获得所需内容。 此属性设置一个模板,用于创建用于布置项目的面板。 但是GridViewItem
有两个模板 ,当GridView
的ItemsWrapGrid
是ItemsWrapGrid
(默认)或ItemsStackPanel
, GridViewItem
使用模板使用GridViewItemPresenter
而不是UIElement
树来提高网格性能。 在使用此模板时,设置GroupStyle.Panel
属性不会影响GridView
。 我们需要GridViewItem
通过将GridView
的ItemsPanel
设置为其他Panel
来使用其第二个模板。 当您的组垂直对齐时,我们可以将GridView
的ItemsPanel
设置为:
然后我们可以使用左边GroupStyle.Panel
设置GroupStyle.Panel
来实现您的目标。 但请注意:
为GroupStyle.Panel属性中的ItemsPanelTemplate声明的模板的根元素不能是虚拟化面板 。 虚拟化面板定义为从
VirtualizingPanel
派生的任何类型,例如VirtualizingStackPanel
类。
所以我们不能在这里使用WrapGrid
,我们可以使用StackPanel
但项目将被排列成一行。 要将项目WrapPanel
多行,我们需要一个像WPF中的WrapPanel
这样的Panel
。 我们可以自定义它或使用WinRTXamlToolkit中的第三方WrapPanel
。 以WinRTXamlToolkit为例:
xmlns:toolkit="using:WinRTXamlToolkit.Controls"
完整的XAML代码可能像:
以下是我在我身边测试时的输出: