我正在尝试移动图片框中的图像。我在我的应用程序中添加了面板,还在面板中添加了图片框。我打开了一个image.if,图片太大了,我想看看图片的特定部分。那么,我如何上下移动图像(不使用滚动条)来查看图像的特定部分?
发布于 2012-01-21 20:26:44
你可以添加诸如“左移”、“右移”、“上移”、“下移”等控件以及相关操作来移动图片框中的图像。下面显示了如何将图像向右移动的示例。您可以使用鼠标按下和鼠标释放事件来实现这些操作,以便用户只需按下适当的按钮即可按需移动图片。还要注意,一旦达到图像的最大尺寸,可以将矩形区域更改为图像边界内的区域。
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();
}发布于 2012-01-21 15:14:14
我不确定它是否真的回答了你的问题,但这似乎是玩Reactive Extensions (Rx)的一个有趣的理由。This video很好地演示了这种东西如何很好地处理异步事件,比如鼠标输入。
https://stackoverflow.com/questions/8951325
复制相似问题