XAML 通用应用程序 : How to make a horizontal scrolling ListView

标签 xaml windows-phone-8 win-universal-app

我无法让水平滚动的 ListView 工作。我非常接近,但后来有些事情不太正常。

这是我目前在 Internet 上搜索后得出的 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 中获取这些属性

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

关于XAML 通用应用程序 : How to make a horizontal scrolling ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30576212/

相关文章:

c# - Azure 移动服务同步上下文 : Adding custom parameters

c# - 关闭通用应用程序中打开的文件

c# - MediaElement 在更改源后播放声音 2 次

c# - 自定义 ListView 项中的背景/前景功能

mvvm - Windows Phone 8 全景绑定(bind)错误?

windows-phone-8 - 如何检测两个同时触摸?

WPF ColorAnimation似乎保留了部分原始颜色?

c# - 如何更改用户控件的访问修饰符

c# - 自定义 CompositeCollection 不工作

c++ - 在角度为 : glLoadIdentity and glOrtho undefined 的通用 Windows 应用程序中使用 OpenGL