以编程方式更改 ScrollViewer 中的滚动条宽度

Change ScrollBar width in ScrollViewer programatically

当我创建一个新的 ScrollViewer 时,我需要修改 ScrollViewer 中的 ScrollBars 的大小(更改 VerticalScroll 宽度和 Horizo​​ntalScroll 高度),以编程方式

我根据在 SO 中找到的 solution 尝试了以下操作,但没有成功:

    public static ScrollViewer CreateScrollViewer()
    {
        ScrollViewer result = new ScrollViewer();
        // I need to set the scroll width and height here
        // I tried the following with no success
        result.Resources.Add(SystemParameters.VerticalScrollBarWidth, 100);
        return result;
    }

我看到了some solutions to change them,但都是XAML的。我 需要在运行时用纯 C# 完成它。我该怎么做?

您可以从 ScrollViewerControlTemplate 访问 ScrollBar。您可以从 MSDN 上的 How to: Find ControlTemplate-Generated Elements page on MSDN and you can find details of the default ControlTemplate in the ScrollViewer Styles and Templates 页面了解如何执行此操作,但简而言之,试试这个:

ScrollViewer scrollViewer = new ScrollViewer();
scrollViewer.ApplyTemplate();
ScrollBar scrollBar = 
    (ScrollBar)scrollViewer.Template.FindName("PART_VerticalScrollBar", scrollViewer);

您可以对名为 PART_HorizontalScrollBar.

的水平 ScrollBar 执行相同的操作