0

如何使用 WinJS 在 Windows8 应用程序中使用 HTML/JS 使 ListView 垂直滚动?

我使用 XAML/C# 开发了一个 Windows 8 应用程序,在应用程序中我使用 ListView 来获取具有垂直滚动行为的列表。

我现在正在尝试使用 HTML/JS 创建相同的应用程序,但无法使用垂直滚动的 ListView 创建列表。它会自动将 ListItems 放在水平线上并水平滚动。

我认为 GridView 可用于水平滚动的“列表”,而 ListView 可用于垂直滚动。

我还尝试使用以下方法将 ListView 包装在一个在溢出时垂直滚动的 div 中:

<div style="overflow-y:scroll;">
    // ListView
</div>
4

1 回答 1

4

在 XAML 中,您使用不同的控件 - GridView 用于按列填充的水平项目列表并在垂直空间用完时换行,而 ListView 用于按列填充但不换行的垂直项目列表。

在 HTML 中,您对这两种情况都使用 ListView。要在相同的两种行为之间切换,您需要设置 ListView 的layout属性。将其设置new WinJS.UI.GridLayout()为等效于 XAML GridView 和new WinJS.UI.ListLayout()等效于 XAML ListView。

您可以在 JavaScript 中使用类似...

    if (Windows.UI.ViewManagement.ApplicationView.value == Windows.UI.ViewManagement.ApplicationViewState.snapped) {
        demosListView.layout = new WinJS.UI.ListLayout();
    }
    else {
        demosListView.layout = new WinJS.UI.GridLayout();
    }

或者,您可以使用 ListView 控件 div 的 data-win-options 属性在 HTML 中以声明方式进行设置。希望有帮助。

于 2013-04-04T14:33:59.597 回答