繁体   English   中英

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

[英]How to move an image in picturebox using mouse events

我正在尝试在图片框中移动图像。 我在应用程序中添加了面板,还在面板中添加了图片框。 我打开了一个图像。如果图像尺寸很大。我想查看图像的特定部分。 因此,如何上下移动图像(不使用滚动条)以查看图像的特定部分?

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

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();
}

不知道它是否真的回答了您的问题,但这似乎是一个使用Reactive Extensions(Rx)的有趣原因。 该视频很好地展示了这些东西与异步事件(例如鼠标输入)的配合效果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM