WPF ScrollViewer设置ScrollableHeight

时间:2013-04-17 11:53:24

标签: wpf scrollviewer customizing

我有一个用户控件,用于绘制OnRender中的内容。该控件的Height逐渐增长。

我将此控件添加到ScrollViewer。该控件仅重新绘制当前可见区域(viewport)(+/-视图线以实现更平滑的滚动)。 到目前为止一切正常......

但是由于控件通常会增长到几十万像素,我想让控件的Height尽可能小,并提供一个不同的Height值来绑定到{{ ScrollableHeight的1}}(同样适用于ScrollViewer)。但VerticalOffset没有制定者。它会自动绑定到我的控制高度。我也无法覆盖高度。

如何自定义ScrollableHeight(或ScrollViewer)以保持我的控件的真实VerticalScrollbar小?

1 个答案:

答案 0 :(得分:1)

我过去做过类似的事情。您需要做的是编写自己的布局Panel并在其中实施IScrollInfo。界面看起来很大,但大多数只是调用一个主要的set方法。 layouter需要设置一些IScrollInfo属性,例如ExtentHeightOffset等等,这些是您自定义ScrollViewer将如何计算滚动位置和“虚拟”画布大小的可滚动区域。用于实施IScrollInfo我使用this教程作为指导。