如何在 UWP 上隐藏列表视图垂直滚动条?

How can I hide a listviews Vertrical Scroll bar on UWP?

所以我试图在代码中以编程方式隐藏我的 UWP 应用程序中 ListView 的垂直滚动条。

我试过查看 MSDN documentation for Windows.UI.Xaml.Controls.ListView

但是看不到 属性。我能找到的只是 属性 ShowsScrollingPlaceholders ,它指出:

Gets or sets a value that indicates whether the view shows placeholder UI for items during scrolling.

但是设置:

(Control as Windows.UI.Xaml.Controls.ListView).ShowsScrollingPlaceholders = false;

什么都不做。

那么是否可以使用 UWP 隐藏列表视图上的垂直滚动条?

您需要访问 ListView 中的 ScrollViewer。您可以使用辅助方法

public ScrollViewer GetScrollViewer(DependencyObject o)
{
    if (o is ScrollViewer)
    {
        return o as ScrollViewer;
    }

    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(o); i++)
    {
        var child = VisualTreeHelper.GetChild(o, i);
        var result = GetScrollViewer(child);
        if (result == null)
        {
            continue;
        }
        else
        {
            return result;
        }
    }
    return null;
}

用法:

// Get ListView's ScrollViewer
ScrollViewer listScrollViewer = GetScrollViewer(listView);

// Set VerticalScrollBarVisibility to hidden
listScrollViewer.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden;

在 Xaml 中,您可以执行以下操作:

<ListView ScrollViewer.VerticalScrollBarVisibility="Hidden"></ListView>

在代码中你可以这样做:

Windows.UI.Xaml.Controls.ScrollViewer.SetVerticalScrollBarVisibility((Control as Windows.UI.Xaml.Controls.ListView), Windows.UI.Xaml.Controls.ScrollBarVisibility.Hidden);