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

通常将 GridViews 放在 ScrollViewer 中并不是一个好主意,因为它们里面已经有 ScrollViewer...

您应该将 2 个 GridViews 放在 SemanticZoom 中。

也许您可以编辑 GridView 的模板并在其中放置视差背景 - 可能作为具有响应 GridView 上的 ViewChanged 事件的一些内容的 Canvas。

编辑*

您启发了我尝试为 Toolkit 编写 ParallaxBackgroundBehavior。:)

您可以在此处查看早期版本。还包括一个样本

于 2013-01-10T18:43:57.877 回答