2011-04-18 81 views
23

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

+2

检查这段代码,这会给你默认的滚动条宽度: double scrollBarwidth = SystemParameters.VerticalScrollBarWidth; 顺便说一句,为什么你正在寻找它,任何如何VerticalScrollBarWidth的默认值是17我认为。 – SharpUrBrain 2011-04-18 14:20:01

+0

@SharpUrBrain:是的,我查了一下,它给了我17个像素,但我想是否根据DPI设置进行更改,这就是我寻找它的原因。 – Turtleneck 2011-04-19 04:03:17

回答

39

我认为SystemParameters.VerticalScrollBarWidth是你在找什么。

+10

如果你需要在XAML中表达它,你可以这样做: Darren 2014-07-15 08:36:41

+0

我得到了一个转换异常,因为该值是一个double,但ColumnDefinition是一个GridLength。我使用的解决方案: Yaurthek 2016-10-12 08:20:55

5

我不确定这是否是正确的答案。每个WPF控件都可以重新调整,所以即使是滚动条也是如此。因此SystemParameters.VerticalScrollBarWidth仅在用作默认滚动条时才有效。正确的解决方案是在可视化树中查找垂直滚动条并测量它的实际宽度。这是最精确的测量。

+0

你会如何去做这件事在XAML? – Grubsnik 2014-10-03 07:49:41

+0

@Grubsnik可能通过绑定到您将创建的属性......没有任何直接转发的想法 – Noctis 2015-11-03 03:59:23

+0

@Grubsnik如果您可以提供XAML,我可以尝试编写它。这是一种自定义的解决方案,因此很难给你和直接的答案。 – Patrik 2015-11-03 11:10:59