C# 如何在语义缩放内的分组GridView上实现视差背景

C# 如何在语义缩放内的分组GridView上实现视差背景,c#,xaml,windows-8,windows-runtime,parallax,C#,Xaml,Windows 8,Windows Runtime,Parallax,我正在尝试在我的应用程序中实现一个好看的水平滚动gridview。我已经用如下方法实现了它: <Canvas> <StackPanel Orientation="Horizontal" Height="768"> <StackPanel.RenderTransform> <CompositeTransform TranslateX="{B

我正在尝试在我的应用程序中实现一个好看的水平滚动gridview。我已经用如下方法实现了它:

    <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>

//…我的gridview在这里
一切正常,但在我的应用程序中,我需要使用语义缩放,我发现语义缩放在ScrollViewer中无法正常工作

通常,我在互联网上找到的所有视差背景解决方案都在scrollviewer上实现了某种功能,这对我来说很不幸,因为我无法使用它


有人能想出另一种方法来达到想要的效果吗?

一般来说,将GridView放在ScrollViewer中不是一个好主意,因为他们已经有ScrollViewer了

您应该将两个GridView放在语义空间中

也许您可以编辑GridView的模板,并在其中放置一个视差背景-也许作为画布,其中包含一些内容,以响应GridView上的ViewChanged事件

编辑*

你激励我尝试为工具箱编写一个视差背景行为。:)


你可以看到早期版本。还有一个问题。

确保并检查ARM设备的性能。这是一个常见的性能杀手。说真的,谢谢你的提示,杰瑞。我有一个表面坐在我旁边,到目前为止,我还没有看到它表现不佳!是 啊Surface相当不错。任何设备在用力推动时都可能表现不佳。:)尝试在UI中放置几层半透明图像,并比较Surface和Intel PC上的性能:)谢谢Filip,我现在就试试!