我正在创建一个图像查看器类型的应用程序。我在 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();
}
到目前为止,我的代码运行良好。现在我想使反向拖动区域变暗(拖动区域之外的区域),我的意思是这个矩形内的区域应该在拖动时突出显示。
任何想法如何进行。
谢谢。
-潘卡伊