在 ScrollViewer 中平移 Canvas 的内容

发布于 2024-12-16 01:33:12 字数 427 浏览 0 评论 0原文

我正在尝试在滚动查看器中的画布内实现平移,例如:

<ScrollViewer>
    <Canvas>

        <!-- some visual elements here -->

    </Canvas>
</ScrollViewer>

我希望在画布内进行单击和拖动操作以导致画布的内容移动。我尝试处理 MouseDown、MouseMove 和 MouseUp 事件,以按照描述的方式进行翻译 这里但它没有起作用。

有什么想法吗?

I'm trying to implement panning within a Canvas within a scrollviewer like:

<ScrollViewer>
    <Canvas>

        <!-- some visual elements here -->

    </Canvas>
</ScrollViewer>

I want a click and drag operation within the canvas to cause the contents of the canvas to move. I've tried handling the MouseDown, MouseMove, and MouseUp events to do a translation in the manner described here but it hasn't worked.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

っ〆星空下的拥抱 2024-12-23 01:33:13

您当前的设置无法做到这一点。 Canvas 将超出其父容器,并且滚动查看器不会知道 Canvas 的大小(它会告诉它不需要滚动),因此无法创建句柄。

如果您想跳过该设置,请将画布更改为网格并使用 垂直滚动水平滚动和关联的设置属性以移动周围网格的可见部分。

You can't do that with your current setup. A Canvas will stretch beyond its parent container and the scrollviewer won't know the size of the Canvas (it will tell it it doesn't need to scroll) and therefore can't create the handles.

If you want to skip with that set up change the canvas to a grid and use the Vertical Scroll and Horizontal Scroll and associated set properties to move the visible section of the grid around.

筑梦 2024-12-23 01:33:13

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

Try giving your Canvas a set Width and Height and give it a background color (Transparent should be fine) and see if that helps you get your mouse events.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文