2

ZommedInView と ZoomedOutView の両方で GridView を含む SemanticZoom を使用しています。ただし、ZoomedOutView のものはコンテナーにスナップしていないようです。コンテナーは、ScrollViewer にある StackPanel です。これは、水平方向の配置が左に設定されている場合、ズームアウトするとアイテムが画面外になることを意味します。また、デザイナーでズームインされたグリッドビューを選択すると、予想される場所に明確に表示され、スクロールビューアーがいっぱいになります。ズームアウトされたグリッドビューは、ページの境界を超えて表示されます。

ズームイン ビューとズームアウト ビューのコンテンツを交換すると、問題が別のグリッドビューにスワップされるため、問題はグリッドビューの違いではないと推測できます。

それを修正する方法はありますか、それともコントロールのバグですか?

<ScrollViewer
        x:Name="itemGridScrollViewer"
        AutomationProperties.AutomationId="ItemGridScrollViewer"
        Grid.Row="1"
        Margin="0,-3,0,0"
        Style="{StaticResource HorizontalScrollViewerStyle}">

        <!--
        ItemTemplateSelector="{StaticResource hubItemTemplateSelector}"
        ItemTemplate="{StaticResource Standard250x250ItemTemplate}"
        -->
        <StackPanel
                    Margin="116,0,40,46">
        <SemanticZoom ManipulationMode="RotateInertia">
            <SemanticZoom.ZoomedInView>
                    <GridView
                    AutomationProperties.AutomationId="ItemGridView"
                    AutomationProperties.Name="Grouped Items"
                    ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
                    ItemTemplateSelector="{StaticResource hubItemTemplateSelector}"
                    SelectionMode="None"
                    IsItemClickEnabled="True"
                    ItemClick="ItemView_ItemClick"
                    IsSwipeEnabled="True">

                        <GridView.ItemsPanel>
                            <ItemsPanelTemplate>
                                <VirtualizingStackPanel Orientation="Horizontal"/>
                            </ItemsPanelTemplate>
                        </GridView.ItemsPanel>
                        <GridView.GroupStyle>
                            <GroupStyle>
                                <GroupStyle.HeaderTemplate>
                                    <DataTemplate>
                                        <Grid Margin="1,0,0,6">
                                            <Button
                                            AutomationProperties.Name="Group Title"
                                            Content="{Binding Path=Title}"
                                            Click="Header_Click"
                                            Style="{StaticResource TextButtonStyle}"/>
                                        </Grid>
                                    </DataTemplate>
                                </GroupStyle.HeaderTemplate>
                                <GroupStyle.Panel>
                                    <ItemsPanelTemplate>
                                        <VariableSizedWrapGrid MaximumRowsOrColumns="2" ItemHeight="250" ItemWidth="250" Orientation="Horizontal"/>
                                    </ItemsPanelTemplate>
                                </GroupStyle.Panel>
                            </GroupStyle>
                        </GridView.GroupStyle>
                    </GridView>
                </SemanticZoom.ZoomedInView>
            <SemanticZoom.ZoomedOutView>
                    <GridView
                        AutomationProperties.AutomationId="CategoryGridView"
                        AutomationProperties.Name="Grouped Items Zoomed Out"
                        ItemsSource="{Binding Path=ItemGroups}"
                    >

                        <GridView.ItemTemplate>
                            <DataTemplate>
                                <Button
                                    AutomationProperties.Name="Group Title"
                                    Content="{Binding Title}"
                                    Click="Header_Click"
                                    Style="{StaticResource TextButtonStyle}"/>
                            </DataTemplate>
                        </GridView.ItemTemplate>
                        <GridView.ItemsPanel>
                            <ItemsPanelTemplate>
                                <WrapGrid ItemWidth="250" ItemHeight="250" MaximumRowsOrColumns="2" VerticalChildrenAlignment="Center" />
                            </ItemsPanelTemplate>
                        </GridView.ItemsPanel>
                        <GridView.ItemContainerStyle>
                            <Style TargetType="GridViewItem">
                                <Setter Property="Margin" Value="4" />
                                <Setter Property="Padding" Value="10" />
                                <Setter Property="Background" Value="#FF25A1DB" />
                                <Setter Property="BorderThickness" Value="1" />
                            </Style>
                        </GridView.ItemContainerStyle>
                    </GridView>
                </SemanticZoom.ZoomedOutView>
        </SemanticZoom>
        </StackPanel>
    </ScrollViewer>
4

1 に答える 1

2

解決策は、SemanticZoomを含むStackPanelにHorizo​​ntalAlignment属性を設定することのようです。左に設定すると、コンテンツが適切に配置されます。

于 2012-04-04T21:27:53.610 に答える