【问题标题】:How to move an image in picturebox using mouse events如何使用鼠标事件移动图片框中的图像
【发布时间】:2012-01-21 07:04:55
【问题描述】:

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

【问题讨论】:

  • PictureBox 并不是为了让平移图像变得容易。而是移动 PictureBox,只需更改其 Location 属性。
  • 不要仅仅因为您使用 C# 编写应用程序而使用包含短语 'csharp' 的标签。只使用必要的标签。谢谢。

标签: c# .net picturebox


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    不确定它是否真的回答了您的问题,但这似乎是与Reactive Extensions (Rx) 一起玩的一个有趣的理由。 This video 很好地展示了这些东西如何与鼠标输入等异步事件一起工作。

    【讨论】:

      猜你喜欢
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      • 2016-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-15
      • 1970-01-01
      相关资源
      最近更新 更多