【问题标题】:ListView with horizontal items具有水平项目的 ListView
【发布时间】:2015-12-29 22:56:20
【问题描述】:

我来自 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 并且您的鼠标滚轮应该可以使用。
  • @ChrisW 我已经尝试过您的更改,但它对我不起作用。在 Windows 10 PC(通用应用)中测试
  • 我在博客上写了一些额外的细节depblog.weblogs.us/2015/03/25/… :)

标签: wpf xaml listview win-universal-app uwp


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:
    <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>
    

    【讨论】:

      【解决方案3】:

      好的,我找到了让它工作的方法!

      这就是我所拥有的。不知道配置好不好,建议?

      <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,如果你有这个属性,你可以放弃它在那里,它奏效了,很高兴你找到了补救措施!
      猜你喜欢
      • 2010-11-05
      • 2012-07-05
      • 2014-07-20
      • 2012-05-30
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      • 1970-01-01
      • 2016-02-19
      相关资源
      最近更新 更多