1

我有一个分组GridView,里面有一些明确大小的数据绑定控件。

GridViewaVariableSizedWrapGrid作为ItemPanelTemplate类型。

如您所见,ScrollView卷轴远远超出了内容。

任何帮助表示赞赏,下面是 XAML。

ScrollView 超出内容区域

<GridView Grid.Row="2" ItemsSource="{Binding Source={StaticResource contentSetListViewSource}}" ItemTemplate="{StaticResource DashboardContentSetItem}" SelectedIndex="-1" SelectionMode="Multiple" Padding="0,0,0,15" VerticalAlignment="Center"  Margin="20 0" HorizontalAlignment="Left">
    <GridView.GroupStyle>
        <GroupStyle>                        
            <GroupStyle.HeaderTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Key}" Margin="0 10" Style="{StaticResource GroupHeaderTextStyle}"/>
                </DataTemplate>
            </GroupStyle.HeaderTemplate>
            <GroupStyle.Panel>
                <ItemsPanelTemplate>
                    <VariableSizedWrapGrid/>
                </ItemsPanelTemplate>
            </GroupStyle.Panel>
        </GroupStyle>
    </GridView.GroupStyle>                
</GridView>
4

1 回答 1

0

GridView默认情况下使用一个ItemsPanelTemplate由包含一个的边框组成WrapGrid

所以我瞄准了错误的面板,这是我使用的修复:

<GridView.ItemsPanel>
    <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal" />
    </ItemsPanelTemplate>
</GridView.ItemsPanel>

原因是 WrapGrid 不是可变大小的,它固定为最大集合的大小,第二个分组(1 个项目)的大小与第一个(5 个项目)的大小相同,这就是它扩展到内容之外的原因。

于 2012-12-21T15:49:41.437 回答