Xaml gridviewitem中嵌套的scrollviewer

Xaml gridviewitem中嵌套的scrollviewer,xaml,listview,gridview,windows-runtime,controltemplate,Xaml,Listview,Gridview,Windows Runtime,Controltemplate,我在WinRT中有一个场景,其中我有一个标准的gridview,它以水平方式显示内容-通常的WinRT scrollviewer在这里用于显示屏幕右侧的内容,因此我们可以根据许多WinRT应用程序“向左滑动” XAML中gridviewitems的数据模板如下所示: <DataTemplate> <Grid Background="White" Margin="0,0,1,1">

我在WinRT中有一个场景,其中我有一个标准的gridview,它以水平方式显示内容-通常的WinRT scrollviewer在这里用于显示屏幕右侧的内容,因此我们可以根据许多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>

正如我希望您可以从源代码中看到的,templates项目正试图显示存储在listviewer中的图像,这些图像被包装在scrollviewer中(随时显示大约3个),任何溢出的图像都可以在scrollviewer中滑动

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

有人知道如何覆盖此默认行为并在我的控制范围内有两种类型的滚动吗


谢谢,

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

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

谢谢您的回复。该设计是一个滚动的图像“窗口”——其中显示3个图像,但列表中可能有20个,因此ListView是父gridview中存在的项目。以WinRT中的flipview控件为例,它通常可以在列表控件中使用,除了只显示1个图像外,与此非常类似。我想你的规则可能有例外!在任何情况下,我的问题都是由破坏datatemplate样式的设计师引起的,但由于IshorizontalScrollChainEnabled是正确的行为,我将接受您的回答。嗯,我不是设计师,这不是我的规则。我真的不认为这些是规则——更像是指导方针,所以这是你的脚——做对你有用的事。:)谢谢你的回复。该设计是一个滚动的图像“窗口”——其中显示3个图像,但列表中可能有20个,因此ListView是父gridview中存在的项目。以WinRT中的flipview控件为例,它通常可以在列表控件中使用,除了只显示1个图像外,与此非常类似。我想你的规则可能有例外!在任何情况下,我的问题都是由破坏datatemplate样式的设计师引起的,但由于IshorizontalScrollChainEnabled是正确的行为,我将接受您的回答。嗯,我不是设计师,这不是我的规则。我真的不认为这些是规则——更像是指导方针,所以这是你的脚——做对你有用的事。:)