XAML通用应用程序:如何制作水平滚动列表视图

XAML通用应用程序:如何制作水平滚动列表视图,xaml,windows-phone-8,win-universal-app,Xaml,Windows Phone 8,Win Universal App,我无法使水平滚动列表视图正常工作。我离得很近,但有些东西不太对劲 这是我目前的XAML,我在搜索了互联网后找到了它。项目是水平显示的,但问题是,它仍然只想垂直滚动,即使我试图强制所有内容为水平打开和垂直关闭 有人知道我做错了什么吗 <ScrollViewer x:Name="scrollWatchlist" Grid.Row="1" Margin="0,5,0,3" DataContext="{Binding MovieViewModel}" Horizonta

我无法使水平滚动列表视图正常工作。我离得很近,但有些东西不太对劲

这是我目前的XAML,我在搜索了互联网后找到了它。项目是水平显示的,但问题是,它仍然只想垂直滚动,即使我试图强制所有内容为水平打开和垂直关闭

有人知道我做错了什么吗

<ScrollViewer x:Name="scrollWatchlist" Grid.Row="1" Margin="0,5,0,3" DataContext="{Binding MovieViewModel}"
              HorizontalScrollMode="Enabled"
              HorizontalScrollBarVisibility="Visible"
              IsHorizontalRailEnabled="True"

              VerticalScrollMode="Disabled"
              VerticalScrollBarVisibility="Disabled"
              IsVerticalRailEnabled="False"

              IsScrollInertiaEnabled="True">
    <ScrollViewer.Template>
        <ControlTemplate>
            <ListView Margin="0,5,0,3" ItemsSource="{TemplateBinding DataContext}">
                <ListView.ItemsPanel>
                    <ItemsPanelTemplate>
                        <StackPanel Orientation="Horizontal" />
                    </ItemsPanelTemplate>
                </ListView.ItemsPanel>
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ListViewItem Margin="0,0,5,0" Tag="{Binding ID}">
                            <Image Source="{Binding FormattedPosterUri}" Width="92" />
                        </ListViewItem>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </ControlTemplate>
    </ScrollViewer.Template>
</ScrollViewer>

更新:下面是一个适用于任何遇到此问题的人的XAML示例:

<ListView x:Name="lvwMovieWatchlist" Grid.Row="1" Margin="0,5,0,3" ItemsSource="{Binding MovieViewModel}"
          ScrollViewer.HorizontalScrollMode="Enabled"
          ScrollViewer.HorizontalScrollBarVisibility="Visible"
          ScrollViewer.IsHorizontalRailEnabled="True"
          ScrollViewer.VerticalScrollMode="Disabled">

    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
    <ListView.ItemTemplate>
        <DataTemplate>
            <ListViewItem Margin="0,0,5,0" Tag="{Binding ID}">
                <Image Source="{Binding FormattedPosterUri}" Width="92" />
            </ListViewItem>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

您不需要
ScrollViewer
,还应该在
列表视图中获取这些属性

<ListView  Margin="0,5,0,3" ItemsSource="{TemplateBinding DataContext}"ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.IsHorizontalRailEnabled="True">

建议使用GridView显示水平滚动的项目。只需在代码中将ListView替换为Gridview即可

但是,您可以将ListView与水平滚动条一起使用:

<ListView ScrollViewer.HorizontalScrollBarVisibility="Auto"
          ScrollViewer.HorizontalScrollMode="Enabled"
          ScrollViewer.VerticalScrollMode="Disabled">


谢谢。没有意识到ScrollViewer属性是可访问的。不过,这现在是有意义的。你还需要禁用垂直滚动,否则鼠标滚轮按钮将不起作用。是的,我也禁用了它(虽然这是一个WP 8应用程序,所以我现在不必担心鼠标滚轮)。但是谢谢你的提醒。我最近也需要同样的建议,并在博客上发表了相关文章:也许你可以在那里得到一些额外的建议;)你能发布一个微软或大众称之为“推荐”的链接吗?此外,使用网格不会像ListView那样为选择特定项提供点击动画反馈。我特别想要这个功能。这是微软认证考试70-484《开发windows应用商店应用的基础知识》中的一个问题。这里也提到了它:,但不是作为建议,而是默认行为。关于动画,我不知道你是什么意思?我得到了完全相同的反馈,但我使用的是windows 8…GridView和ListView之间的重要区别是选择项目的手势(如果您启用了单击)。ListView的选择手势是向左滑动->向右滑动,但如果您有水平滚动查看器,根据设计指南,您应该使用向上滑动->向下滑动,这就是GridView的功能。也许GridView会提供这种行为。我以前从未使用过(我对WP8应用程序完全陌生,这是我的第一个)。当你在上面说GridView的时候我都不明白;完全忽略了我只是在考虑网格,因为到目前为止我只使用过网格和ListView。我得多看看GridView。它实际上可能包含一些我感兴趣的行为,以及我正在做的其他事情。谢谢:)我完全推荐你们读一本叫做考试参考-认证名称-准备指南的书,例如。它们非常适合学习微软官方推荐的大量示例和解释。您还可以查看考试内容:并找到每个主题的MSDN链接。您可能会在那些因认证而遭受损失的人的博客上找到msdn链接列表