【问题标题】:Removing default Scroll bar from UWP app using XAML使用 XAML 从 UWP 应用程序中删除默认滚动条
【发布时间】:2021-08-31 15:46:26
【问题描述】:

在我的 UWP 应用程序中,我有一个数据网格,它已经有一个单独的滚动条,但我也得到了应用程序默认滚动条,我试图通过以下方式隐藏和禁用它:

ScrollViewer.VerticalScrollBarVisibility="Hidden" 
ScrollViewer.VerticalScrollMode="Disabled"

但仍然悬停时,我得到了一个默认滚动条。请参考附图。

谁能帮我删除默认滚动条?

App Image

【问题讨论】:

  • 如果答案已经解决了您的问题,请mark 方便以后访问此主题的人接受,感谢您的理解。

标签: c# xaml uwp uwp-xaml


【解决方案1】:

请参考source code,它不是用ScrollViewer实现的,我们无法获取scrollviewer实例。对于这种情况,您可以使用可视化树助手检测垂直滚动条并将其隐藏,更多请参考以下代码。

var scrollbar = MyFindDataGridChildOfType<ScrollBar>(MyDataGrid);
Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
    scrollbar.Visibility = Visibility.Collapsed;
});


public static T MyFindDataGridChildOfType<T>(DependencyObject root) where T : class
{
    var MyQueue = new Queue<DependencyObject>();
    MyQueue.Enqueue(root);
    while (MyQueue.Count > 0)
    {
        DependencyObject current = MyQueue.Dequeue();
        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(current); i++)
        {
            var child = VisualTreeHelper.GetChild(current, i);
            var typedChild = child as T;
            if (typedChild != null)
            {
                return typedChild;
            }
            MyQueue.Enqueue(child);
        }
    }
    return null;
}

【讨论】:

    猜你喜欢
    • 2011-01-21
    • 2018-12-20
    • 2011-05-10
    • 2012-10-20
    • 2012-01-23
    • 2017-11-22
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多