如何在C#中查找Scrollviewer的垂直滚动条宽度

23 c# wpf xaml scrollbar scrollviewer

我有一个ScrollViewer,我正在显示Vertical Scrollbar,现在我想改变系统的分辨率,我想得到滚动条的宽度.我通过他们提到的One StackOverflow Post来检查SystemParameters.ScrollWidth属性,但我再次找到他们的任何帮助.任何人都可以帮我解决我的问题.任何答案将不胜感激.

Fre*_*örk 40

我认为SystemParameters.VerticalScrollBarWidth这就是你要找的.

  • 如果需要在XAML中表达它,可以这样做:<ColumnDefinition Width ="{x:Static SystemParameters.VerticalScrollBarWidth}"/> (11认同)
  • 我得到了一个强制转换异常,因为该值是一个双精度值,但 ColumnDefinition 是一个 GridLength。我使用的解决方案:&lt;ColumnDefinition Width="{Binding Source={x:Static SystemParameters.VerticalScrollBarWidth}}"/&gt; (3认同)

Pat*_*rik 9

我不确定这是否是正确的答案.每个WPF控件都可以重新设置,甚至滚动条.因此SystemParameters.VerticalScrollBarWidth仅在用作默认滚动条时才有效.正确的解决方案是在可视化树中找到垂直滚动条并测量它的ActualWidth.这是最精确的测量.