2011-04-18 84 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