Changing the width of a vertical scrollbar

2019-05-18 15:50发布

问题:

in my Silverlight 4 application, I have a ScrollViewer. I want to change the width of the vertical Scrollbar of the Scrollviewer, to make it a bit thinner. I have searched for a simple solution, but I do not need/want to restyle the whole Scrollbar. I was thinking about something like:

MyScrollViewer.VerticalScrollbar.Width = 8;

But there is no such Property. Any idea, how to make the scroll bar thinner?

Thanks in advance,
Frank

回答1:

There is no direct way of getting the vertical scrollbar of the scrollviewer. Below code will extract the vertical scroll bar from the visualtree and you can do the changes in properties of the 'scrollbar'

ScrollBar vertical = ((FrameworkElement)VisualTreeHelper.GetChild(scrollviewer1, 0)).FindName("VerticalScrollBar") as ScrollBar;


回答2:

There is one more Property called MinWidth. If you set that property then the width will get reduced.

Try this :

 ScrollBar vertical = ((FrameworkElement)VisualTreeHelper.GetChild(scrollViewer1, 0)).FindName("VerticalScrollBar") as ScrollBar;
 vertical.MinWidth = 8;
 vertical.Width = 8;