1

アプリ内に見栄えの良い水平方向にスクロールされたグリッドビューを実装しようとしています。私はすでに次のようなQ42.WinRTライブラリを使用して実装しています。

    <Canvas>
        <StackPanel Orientation="Horizontal" Height="768">
            <StackPanel.RenderTransform>
                <CompositeTransform
                   TranslateX="{Binding ElementName=MyScrollViewer, Path=HorizontalOffset, Converter={StaticResource ParallaxConverter}}" />
            </StackPanel.RenderTransform>
            <Image Source="/Assets/3.jpg" Width="1366" Stretch="UniformToFill"/>
            <Image Source="/Assets/1.jpg" Stretch="UniformToFill"/>
            <Image Source="/Assets/2.jpg" Stretch="UniformToFill"/>
        </StackPanel>
    </Canvas>
    <ScrollViewer
       x:Name="MyScrollViewer"
       HorizontalScrollMode="Enabled"
       HorizontalScrollBarVisibility="Auto"
       VerticalScrollMode="Disabled"
       VerticalAlignment="Center"
       Height="768">
    <GridView>
      //...my gridview goes here
    </GridView> </ScrollViewer>

すべて正常に動作しますが、私のアプリではセマンティックズームを使用する必要があり、ScrollViewer内に配置するとセマンティックズームが正しく機能しないことがわかりました。

一般に、インターネットで見つけた視差の背景のすべてのソリューションは、スクロールビューアを介して何らかの機能を実装していますが、これは使用できないため、残念です。

誰かが望ましい効果を達成するための別の方法を考えることができますか?

4

1 に答える 1

2

一般に、GridViewをScrollViewer内に配置することは、すでにScrollViewerが内部にあるため、良い考えではありません...

2つのGridViewをSemanticZoom内に配置する必要があります。

おそらく、GridViewのテンプレートを編集して、そこに視差の背景を配置することができます。おそらく、GridViewのViewChangedイベントに応答するコンテンツを含むキャンバスとしてです。

編集*

ツールキットのParallaxBackgroundBehaviorを作成しようと私にインスピレーションを与えました。:)

ここで初期バージョンを見ることができます。含まれているサンプルもあります。

于 2013-01-10T18:43:57.877 に答える