本文解决了使用 Paint 事件中的变换从鼠标位置缩放(缩放)图像的问题。将位图原点平移到鼠标位置后,图像会缩放并将其原点平移回来。然而,在鼠标位置转换过程中,图像会“跳跃”并且无法从重新定位的原点进行缩放。
为了解决此问题,我们实施以下策略:
为了直观演示,我们的示例代码在自定义 PictureBoxEx 控件中实现了四种缩放模式:
答案中提供的代码介绍了PictureBoxEx自定义控件,该控件继承自PictureBox并包含自定义功能。它还包括 canvas 变量,该变量表示在初始化期间添加到表单的自定义控件。 ZoomMode 枚举用于定义不同的缩放模式。
鼠标事件和轨迹栏的事件处理程序以及核心绘画逻辑,根据所选的缩放模式处理缩放和旋转操作。
请记住在运行之前将 imagePath 字符串修改为图像文件的实际路径代码。
这种方法提供了一种更高效、更稳定的方法来从鼠标位置缩放和平移图像。它减少了处理复杂转换时出现意外视觉伪影或性能问题的可能性。
以上是如何在 C# 中从鼠标位置正确缩放和平移图像?的详细内容。更多信息请关注PHP中文网其他相关文章!