如何使用鼠标事件在picturebox中移动图像

本文关键字:移动 图像 picturebox 何使用 鼠标 事件 | 更新日期: 2023-09-27 18:21:11

我正在尝试移动图片框中的图像。我在应用程序中添加了面板,还添加了面板中的图片框。我打开了一张图片。如果图片很大,我想看看图片的特定部分。那么我怎样才能上下移动图像(不使用滚动条)来查看图像的特定部分呢?

如何使用鼠标事件在picturebox中移动图像

您可以添加控件,如向左移动、向右移动、向上移动、向下移动以及相关操作,以在图片框中移动图像。下面显示了如何将图像向右移动的示例。您可以使用鼠标向下和鼠标向上事件来实现这些操作,这样用户只需按下适当的按钮即可根据需要移动图片。还要注意,一旦达到图像的最大尺寸,就可以将矩形区域更改为图像边界内的区域。

int ff = 0; //number of positions to move
Bitmap b2;
private void button1_Click(object sender, EventArgs e)
{
    if (ff == 0) { b2 = new Bitmap(pictureBox1.Image);}  //original image as bitmap b2
    Bitmap b1 = new Bitmap(pictureBox1 .Width ,pictureBox1.Height );  //new bitmap with rectangular region of original image
    Rectangle r1 = new Rectangle(ff++, 0, pictureBox1.Width, pictureBox1.Height );
    Graphics g = Graphics.FromImage(b1);
    g.DrawImage(b2, 0, 0, r1, GraphicsUnit.Pixel);
    g.Dispose();
    pictureBox1.Image = null;
    pictureBox1.Image = (Image)b1;
    pictureBox1.Refresh();
}

不确定它是否真的能回答你的问题,但这似乎是玩反应式扩展(Rx)的一个有趣的理由。这段视频很好地展示了这种东西在异步事件(如鼠标输入)中的工作效果。