我有一个显示分组数据的网格视图。我得到具有此特征的数据显示:每个组接收相同数量的水平空间,由最大的组确定。
为了澄清,我最大的数据组显示了一个 3 行 x 4 列项目的数组。每列是 300 个像素,为组分配 1200 个像素。其他组只有一项。但该组的宽度不是 300 像素,而是系统分配 1200 像素。包含项目的 300 像素,以及 900 像素的空白空间。
任何解释为什么会发生这种情况?
我有一个显示分组数据的网格视图。我得到具有此特征的数据显示:每个组接收相同数量的水平空间,由最大的组确定。
为了澄清,我最大的数据组显示了一个 3 行 x 4 列项目的数组。每列是 300 个像素,为组分配 1200 个像素。其他组只有一项。但该组的宽度不是 300 像素,而是系统分配 1200 像素。包含项目的 300 像素,以及 900 像素的空白空间。
任何解释为什么会发生这种情况?
I had the same problem with grouping. I added a StackPanel with horizontal orientation as ItemsPanel.
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
您使用的是 dataTemplateSelector 吗?因为我在使用 dataTemplateSelector 时遇到了同样的问题。我所做的是使用 VariableSizedWrapGrid,它允许您在网格中拥有不同的项目大小。它适用于 GroupedList。您可以点击那些解释一切的链接:
这是一个示例:https ://skydrive.live.com/?cid=3a5ca8204ec61147&id=3A5CA8204EC61147!35841
我有同样的问题:
第一个组的宽度决定了所有其他组的宽度。
<GridView
x:Name="resultsGridView"
AutomationProperties.AutomationId="ResultsGridView"
AutomationProperties.Name="Search Results"
TabIndex="1"
Grid.Row="1"
Margin="0,-238,0,0"
Padding="110,240,110,46"
SelectionMode="None"
IsSwipeEnabled="false"
ItemClick="resultsGridView_ItemClick_1"
IsItemClickEnabled="True"
ItemsSource="{Binding Source={StaticResource resultsViewSource}}"
ItemTemplate="{StaticResource StandardSmallIcon300x70ItemTemplate}">
<GridView.ItemContainerStyle>
<Style TargetType="Control">
<Setter Property="Height" Value="150"/>
<Setter Property="Margin" Value="0,0,38,8"/>
</Style>
</GridView.ItemContainerStyle>
<GridView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<Grid Margin="1,0,0,6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<!--<Button
AutomationProperties.Name="Group Title"
Style="{StaticResource TextPrimaryButtonStyle}" >-->
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Title}" Margin="3,-7,10,10" Style="{StaticResource GroupHeaderTextStyle}" />
<!--<TextBlock Text="{StaticResource ChevronGlyph}" FontFamily="Segoe UI Symbol" Margin="0,-7,0,10" Style="{StaticResource GroupHeaderTextStyle}"/>-->
</StackPanel>
<!--</Button>Click="Header_Click"-->
</Grid>
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.Panel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid Orientation="Vertical" Margin="0,0,80,0"/>
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</GridView.GroupStyle>
</GridView>