1

我在 WinRT 中有一个场景,我有一个标准的网格视图,它以水平方式显示内容 - 通常的 WinRT 滚动查看器会在此处用于出现在屏幕右侧的内容,因此我们可以“向左滑动”很多WinRT 应用程序。

我在 XAML 中的 gridviewitems 数据模板如下:

            <DataTemplate>
                <Grid Background="White" Margin="0,0,1,1">
                    <ScrollViewer Grid.Column="3" Width="200">
                        <ListView Width="600" Height="170" Margin="0" Padding="10" ItemsSource="{Binding Path=ProductListItems}">
                            <ListView.ItemTemplate>
                                <DataTemplate>
                                    <Image Source="{Binding Path=LargeImage}" Width="200" Height="150" Stretch="UniformToFill"/>
                                </DataTemplate>
                            </ListView.ItemTemplate>
                        </ListView>
                    </ScrollViewer>
                </Grid>
            </DataTemplate>

正如我希望您从源代码中看到的那样,模板项正在尝试显示存储在列表查看器中的图像,该图像包裹在滚动查看器中(随时显示大​​约 3 个),任何溢出的图像都可以在滚动查看器中滑动。

问题是主父 gridview 窃取了所有输入,并且任何滑动(即使放置在模板化的 listview 滚动查看器中)都没有注册。

任何人都知道如何覆盖此默认行为并在我的控制范围内进行 2 种类型的滚动?

谢谢,

4

1 回答 1

1

我认为 ScrollViewer 的IsHorizo​​ntalScrollChainingEnabled属性可能会帮助你做你想做的事,但就是说 - 你永远不应该做你想做的事,因为这是一个非常糟糕的设计。永远不要将 GridViews 或 ListViews 放在 ScrollViewer 中,也不要将它们中的任何一个嵌套在一起。如果您想提供一种方法来查看比 GridView 更多的内容 - 您应该允许导航到允许您查看它的另一个页面。在您的情况下-您试图将 ListView 嵌套在 GridView 内的 ScrollViewer 内,这基本上意味着您在可视化树中嵌套了 3 个 ScrollViewers,这是双重错误。

于 2012-10-22T16:33:19.330 回答