水平项目的ListView

9

我来自WPF,并不知道是否可以让ListView水平分配项目,所有额外功能都应包括鼠标滚轮滚动(鼠标设备)和滑动(触摸设备)。

我尝试过了,但它的行为不像垂直方向上的那个。例如:我无法使用鼠标滚轮滚动。

<ListView ScrollViewer.VerticalScrollBarVisibility="Disabled"  ScrollViewer.HorizontalScrollBarVisibility="Auto" ItemsSource="{Binding Collection}" >
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel Orientation="Horizontal"></StackPanel>
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
</ListView>

Background="Transparent" 添加到您的面板中,以赋予它 hittestvisibility 属性,这样您的鼠标滚轮就可以正常使用了。 - Chris W.
@ChrisW 我尝试了你的更改,但对我没有用。在 Windows 10 PC(通用应用程序)上进行测试。 - SuperJMN
1
我在这里写了一篇关于它的博客,附带了一些额外的细节 http://depblog.weblogs.us/2015/03/25/show-items-scrolling-horizontally-with-listview-in-winrt/ :) - Depechie
3个回答

21

好的,我找到了一种使它工作的方式!

这就是我拥有的。我不知道它是否配置正确,有建议吗?

<ListView ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Auto"
    ScrollViewer.HorizontalScrollMode="Enabled"                  
    ScrollViewer.VerticalScrollMode="Disabled"
    ItemsSource="{Binding Collection}">
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel Background="Transparent" Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
</ListView>

啊,好的,“Background=transparent”的技巧是一个旧的Silverlight东西,我有时仍然会在新的通用东西中遇到它,因为很多东西都是基于Silverlight的。如果你已经在那里设置了这个属性并且它起作用了,你可以放弃它,很高兴你找到了解决方法! - Chris W.

10

这更简单,也许可以帮助:

 <ListView>
     <ListView.ItemsPanel>
          <ItemsPanelTemplate>
              <StackPanel Orientation="Horizontal" />
          </ItemsPanelTemplate>
     </ListView.ItemsPanel>
     <ListView.ItemTemplate>
          <DataTemplate>
             <StackPanel Orientation="Horizontal" />
          </DataTemplate>
     </ListView.ItemTemplate>
 </ListView>

4
<ListBox Height="50" VerticalAlignment="Top">
 <ListBox.ItemsPanel>
      <ItemsPanelTemplate>
          <VirtualizingStackPanel Orientation="Horizontal" />
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
        <ListBoxItem Content="aaaaaaaaaaa"/>
        <ListBoxItem Content="aaaaaaaaaaa"/>
        <ListBoxItem Content="aaaaaaaaaaa"/>
        <ListBoxItem Content="aaaaaaaaaaa"/>
        <ListBoxItem Content="aaaaaaaaaaa"/>
</ListBox>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接