在ScrollViewer中平移Canvas的内容

时间:2011-11-16 20:53:59

标签: wpf wpf-controls scrollviewer

我正在尝试在滚动查看器中的Canvas中实现平移,如:

<ScrollViewer>
    <Canvas>

        <!-- some visual elements here -->

    </Canvas>
</ScrollViewer>

我希望在画布中进行单击并拖动操作,以使画布的内容移动。我已经尝试处理MouseDown,MouseMove和MouseUp事件,以here描述的方式进行翻译,但它没有奏效。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您无法使用当前设置执行此操作。 Canvas将超出其父容器,并且scrollviewer将不知道Canvas的大小(它将告诉它不需要滚动),因此无法创建句柄。

如果您想跳过该设置,请将画布更改为网格,并使用Vertical ScrollHorizontal Scroll以及相关的设置属性来移动网格的可见部分。

答案 1 :(得分:0)

尝试给你的画布设置一个宽度和高度并给它一个背景颜色(透明应该没问题)并看看它是否有助于你获得鼠标事件。