【问题标题】:How to implement parallax background on a grouped GridView inside Semantic Zoom如何在语义缩放中的分组 GridView 上实现视差背景
【发布时间】:2013-01-10 14:16:51
【问题描述】:

我正在尝试在我的应用程序中实现一个漂亮的水平滚动网格视图。我已经使用Q42.WinRT library 实现了它,如下所示:

    <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 时无法正常工作。

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

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

【问题讨论】:

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

标签: c# xaml windows-8 windows-runtime parallax


【解决方案1】:

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

你应该把你的 2 个 GridView 放在 SemanticZoom 中。

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

编辑*

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

您可以看到早期版本here。还有一个sample included

【讨论】:

  • 谢谢 Filip,我现在就试试看!
猜你喜欢
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多