111,126
社区成员
发帖
与我相关
我的任务
分享Rectangle rect;
Point pt = new Point();
bool mouse = false;
private void pic_MouseDown(object sender, MouseEventArgs e)
{
mouse = true;
pt = pic.PointToScreen(e.Location);
rect = new Rectangle(0, 0, 0, 0);
}
private void pic_MouseMove(object sender, MouseEventArgs e)
{
if (!mouse)
return;
ControlPaint.DrawReversibleFrame(rect, Color.Red, FrameStyle.Thick);
Point pt2 = pic.PointToScreen(e.Location);
rect = new Rectangle(pt, new Size(pt2.X - pt.X, pt2.Y - pt.Y));
ControlPaint.DrawReversibleFrame(rect, Color.Red, FrameStyle.Thick);
}
private void pic_MouseUp(object sender, MouseEventArgs e)
{
mouse = false;
Point pt2 = pic.PointToScreen(e.Location);
rect = new Rectangle(pt, new Size(pt2.X - pt.X, pt2.Y - pt.Y));
ControlPaint.DrawReversibleFrame(rect, Color.Red, FrameStyle.Thick);
//放大图片
float perWidth = pic.Width / (float)rect.Width;
float perHeight = pic.Height / (float)rect.Height;
pic.Width = (int)(pic.Width * perWidth);
pic.Height = (int)(pic.Height * perHeight);