c#或WinJS: GridView可以用鼠标滚动

本文关键字:鼠标 滚动 GridView WinJS | 更新日期: 2023-09-27 18:02:48

我正在启动一个Windows 8应用程序,我一直在尝试创建一个GridView,它的行为就像一个Carousel/Coverflow,这意味着它将是可滚动的:

  • 手指触摸(工作正常)
  • 鼠标滚轮(它工作正常)
  • 鼠标点击和拖动(它不工作在GridView本身,只在滚动条)

My attempt in c#/XAML:

    <GridView
        x:Name="itemGridView"
        ItemsSource="{Binding Source={StaticResource itemsSource}}"
        ItemTemplate="{StaticResource ItemTemplate}"
        IsItemClickEnabled="True"
        ItemClick="GoToItemDetails"
        SelectionMode="None"
        IsSwipeEnabled="false"
        />

My attempt in WinJS/HTML:

    <div
        data-win-control="WinJS.UI.ListView"
        data-win-options="{layout: {type: WinJS.UI.GridLayout},
                           itemDataSource: items.dataSource,
                           itemTemplate: select('.itemTemplate'),
                           selectionMode: 'none',
                           swipeBehavior: 'none'}"
        class="itemGridView win-selectionstylefilled"
        ></div>

对于这两个,我找不到一种方法让鼠标像手指触摸一样点击&滚动。我不想用小滚动条,我想让整个GridView可以用鼠标滚动。这可能吗?

c#或WinJS: GridView可以用鼠标滚动

这是设计。你所描述的交互模式是对ListView/GridView控件的期望,即:

  • 触摸-点击并拖动以滚动
  • 鼠标-滚动滚轮,或通过点击和拖动滚动条
  • 键盘-用L/R方向键或PgUp/PgDn/Home/End滚动

你想要添加的交互模式的问题是,它在用户可能想要拖动重新排列ListView/GridView中的项目顺序的情况下失败(想想开始屏幕是如何工作的)。控件必须能够支持这些场景,因此它们不支持通过单击和拖动滚动的概念。

希望有帮助。

有关构建Windows Store应用程序的更多信息,请注册App Builder。