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

C# 如何增加ScrollViewer的可滚动区域?,c#,wpf,canvas,scrollviewer,C#,Wpf,Canvas,Scrollviewer,我正在ScrollViewer元素中使用Canvas元素。 工作正常,但我的问题是当一些对象被放置在画布之外时,我无法滚动到它们 如果画布比ScrollViewer大,我可以滚动,但如果画布上有一些超出边界的对象,我就不能滚动 有没有增加可滚动区域的技巧 谢谢。默认情况下,数据块大小可滚动区域是从滚动查看器的直接子对象的大小派生出来的。当以这种方式计算扩展数据块大小时,增加扩展数据块大小的唯一方法是增加子对象(例如画布)的大小 有另一种方法可以对ScrollViewer进行更多的控制,那就是让子

我正在ScrollViewer元素中使用Canvas元素。 工作正常,但我的问题是当一些对象被放置在画布之外时,我无法滚动到它们

如果画布比ScrollViewer大,我可以滚动,但如果画布上有一些超出边界的对象,我就不能滚动

有没有增加可滚动区域的技巧


谢谢。

默认情况下,数据块大小可滚动区域是从滚动查看器的直接子对象的大小派生出来的。当以这种方式计算扩展数据块大小时,增加扩展数据块大小的唯一方法是增加子对象(例如画布)的大小

有另一种方法可以对ScrollViewer进行更多的控制,那就是让子元素实现IScrollInfo。IScrollInfo界面基本上为您提供滚动控制,包括视口大小和范围大小。但是,如果您采用这种方式,则必须实现滚动的各个方面,包括响应滚动操作,如LineUp、LineDown、PageUp、PageDown、MouseWheelUp等。这些操作都是通过IScrollInfo公开的,因此您不必担心处理输入事件,只需使用逻辑命令即可

如果你选择这样做,一些粗略的谷歌搜索至少会显示一些关于实现IScrollInfo的不错的教程