我正在创建图像查看器类应用程序。我在Windows上并使用.Net拖拽时突出显示矩形区域
在我的应用程序中,我试图在拖动时突出显示特定区域。 我已经创建了一个矩形。
Rectangle areaRect = new Rectangle(100,100, 300, 300);
Point ptOld = new Point(0, 0);
Pen rectPen = new Pen(Brushes.White, 3);
protected override void OnPaint(PaintEventArgs e)
{
Graphics dcPaint = e.Graphics;
dcPaint.DrawRectangle(rectPen, areaRect);
}
现在我正在拖动这个矩形区域以及我的鼠标移动。
protected override void OnMouseMove(MouseEventArgs e)
{
Point ptNew = new Point(e.X, e.Y);
int dx = ptNew.X - ptOld.X;
int dy = ptNew.Y - ptOld.Y;
areaRect.Offset(dx, dy);
MoveRect(ptNew);
ptOld = ptNew;
}
在这里,我想直到这点是工作的罚款待着这个矩形与我的鼠标
void MoveRect(Point point)
{
Graphics grfxClient = CreateGraphics();
Rectangle tempRectangle = new Rectangle(areaRect.Left, areaRect.Top, areaRect.Width, areaRect.Height);
grfxClient.DrawRectangle(rectPen, tempRectangle);
this.Invalidate();
grfxClient.Dispose();
}
我的代码。 现在我想将INVERSE拖拽区域(拖拽区域之外的区域)变暗,我的意思是这个矩形内的区域应该在拖拽时突出显示。
任何想法如何继续。
谢谢。
-Pankaj
感谢卢卡斯,它的工作正是我所需要的。 是的,我已经在自定义图片框类的顶部创建了这个矩形,我不仅移动了这个矩形,而且还能够完美调整它的大小(保持其中一个角) 再次感谢。 – Pankaj 2012-04-10 19:38:56
我很高兴它帮助:)。如果您能将我的答案标记为正确,我将不胜感激:)。 – 2012-04-10 20:07:48