0

私のアプリケーションのメイン ページには、このようなものがあります。さまざまなサブセクションを表示し、セクション間の 80 ピクセルのマージンを尊重しています。

<GridView>
    <GridView.Style>
        <Style TargetType="GridView">
            <Setter Property="ItemContainerStyle">
                <Setter.Value>
                    <Style TargetType="GridViewItem">
                        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                        <Setter Property="Margin" Value="0, 0, 80, 0"/>
                        <Setter Property="VerticalContentAlignment" Value="Stretch" />
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="GridViewItem">
                                    <ContentPresenter/>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </Setter.Value>
            </Setter>
            <Setter Property="ItemsPanel">
                <Setter.Value>
                    <ItemsPanelTemplate>
                        <StackPanel Orientation="Horizontal"/>
                    </ItemsPanelTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </GridView.Style>
    <Grid>
        <TextBlock Text="SubTitle1"/>
        ...
    </Grid>
    <Grid>
        <TextBlock Text="SubTitle2"/>
        ...
    </Grid>
    <Grid>
        <TextBlock Text="SubTitle3"/>
        ...
    </Grid>
</GridView>

ここで、これにセマンティック ズームを追加して、ズームアウトすると、天気アプリのようにサブセクションのタイトルが表示されるようにします。過去に ItemsSource を使用して SemanticZoom を実行しましたが、実際の項目を GridView に直接配置していて、グループ化が行われていない場合はどうすればよいですか。

編集: 80 ピクセルで区切られたこれらのタイプの個別のサブセクションの作成を他の人はどのように処理していますか? SemanticZoom を機能させるには、両方の GridView を同じコレクションにバインドする必要がありますか?

4

1 に答える 1

1

上記のGridViewには名前が必要です。ZoomedInGVと呼びましょう。もちろん、これはSemanticZoom.ZoomedInView内のコントロールになります。次に、別のGridViewを作成する必要があります。これをZoomedOutGVと呼びましょう。最後に、2つのビューの間にバインディングを作成する必要があります。解決策は次のようになります。

<SemanticZoom>
    <SemanticZoom.ZoomedInView>
        <GridView x:Name="ZoomedInGV">
        ...
        </GridView>
    </SemanticZoom.ZoomedInView>
    <SemanticZoom.ZoomedOutView>
        <GridView x:Name="ZoomedOutGV" ItemsSource="{Binding ElementName=ZoomedInGV, Path=Items}"/>
    </SemanticZoom.ZoomedOutView>
</SemanticZoom>
于 2012-09-19T17:51:55.280 に答える