如何增加ScrollViewer的可滚动区域?

时间:2014-10-29 12:22:39

标签: c# wpf canvas scrollviewer

我在ScrollViewer-Element中使用Canvas-Element。 工作得很好,但我的问题是当一些对象被放置在画布之外时,我无法“滚动到它们”..

如果Canvas比较大,那么我可以滚动ScrollViewer,但是如果画布的边界外只有一些对象则不能滚动..

是否有增加可滚动区域的技巧?

感谢。

1 个答案:

答案 0 :(得分:0)

默认情况下,范围大小(可滚动区域)是从滚动查看器的直接子项的大小派生的。当以这种方式计算范围大小时,增加它的唯一方法是增加孩子的大小,例如你的Canvas

有一种替代方法可以更好地控制ScrollViewer,这是为了让子元素实现IScrollInfoIScrollInfo接口基本上可以控制滚动到您,包括视口大小和范围大小。但是,如果你走这条路线,你必须实现滚动的每个方面,包括响应滚动操作,如LineUpLineDownPageUp,{{1这些都是通过PageDown公开的,因此您不必担心处理输入事件 - 只需要逻辑命令。

如果您选择走这条路线,一些粗略的谷歌搜索显示至少有一些关于实施MouseWheelUp的体面教程。