如何在UWP上隐藏列表视图Vertrical Scroll bar?

时间:2016-04-18 11:33:12

标签: c# win-universal-app windows-10-universal

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

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

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

  

获取或设置一个值,该值指示视图是否显示占位符   滚动期间项目的UI。

但是设置:

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

什么也没做。

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

2 个答案:

答案 0 :(得分:10)

在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);

答案 1 :(得分:0)

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

来完成此操作
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;