0

我正在启动一个 Windows 8 应用程序,并且我一直在尝试创建一个 GridView,它的行为类似于 Carousel/Coverflow,这意味着它可以通过以下方式滚动:

  • 手指触摸(效果很好)
  • 鼠标滚轮(它工作正常)
  • 鼠标单击并拖动(它不适用于 GridView 本身,仅适用于滚动条)

我在 C#/XAML 中的尝试:

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

我在 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 都可以用鼠标滚动。那可能吗?

4

1 回答 1

1

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

  • 触摸 - 点击并拖动以滚动
  • 鼠标 - 使用滚轮滚动,或在滚动条中单击并拖动
  • 键盘 - 使用 L/R 箭头键或 PgUp/PgDn/Home/End 滚动

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

希望有帮助。

有关构建 Windows 应用商店应用的更多信息,请注册App Builder

于 2013-03-07T19:52:52.397 回答