我有一个用户控件,用于绘制OnRender
中的内容。该控件的Height
逐渐增长。
我将此控件添加到ScrollViewer
。该控件仅重新绘制当前可见区域(viewport
)(+/-视图线以实现更平滑的滚动)。
到目前为止一切正常......
但是由于控件通常会增长到几十万像素,我想让控件的Height
尽可能小,并提供一个不同的Height
值来绑定到{{ ScrollableHeight
的1}}(同样适用于ScrollViewer
)。但VerticalOffset
没有制定者。它会自动绑定到我的控制高度。我也无法覆盖高度。
如何自定义ScrollableHeight
(或ScrollViewer
)以保持我的控件的真实VerticalScrollbar
小?
答案 0 :(得分:1)
我过去做过类似的事情。您需要做的是编写自己的布局Panel并在其中实施IScrollInfo。界面看起来很大,但大多数只是调用一个主要的set方法。 layouter需要设置一些IScrollInfo
属性,例如ExtentHeight
,Offset
等等,这些是您自定义ScrollViewer
将如何计算滚动位置和“虚拟”画布大小的可滚动区域。用于实施IScrollInfo
我使用this教程作为指导。