1

如何以编程方式确定 ScrollViewer 中滚动条的宽度或高度?不是基于 ScrollViewer 当前状态的当前大小(因为我可以简单地测试滚动条的可见性并根据 ViewerPortWidth/Height 和 ScrollViewer ActualWidth/Height 进行计算)。

我需要知道滚动条的大小可以基于模板宽度。默认值为 18(边距为 -1)。但是我们都知道如果我在计算中使用 18 这个幻数会发生什么。我的一些用户可以在 ScrollViewer 中对 Scrollbars 进行模板化,然后我就完蛋了。

谢谢!

4

2 回答 2

2

您可以使用 SystemParameters.ScrollWidth。

于 2010-06-03T03:06:35.840 回答
1

您可以通过以下方式使用 Silverlight Toolkit 的 VisualTreeHelper:

var verticalScrollbar = view.GetVisualChildren().OfType<FrameworkElement>()
        .FirstOrDefault(e => e.Name == "VerticalScrollBar");
var horizontalScrollbar = view.GetVisualChildren().OfType<FrameworkElement>()
        .FirstOrDefault(e => e.Name == "HorizontalScrollBar");
var width = verticalScrollbar == null ? 0 : verticalScrollbar.ActualWidth;
var height = horizontalScrollbar == null ? 0 : horizontalScrollbar.ActualHeight;

其中view是 ScrollViewer 的一个实例(我猜你有这个实例)。

于 2012-02-13T09:28:56.847 回答