私はアプリケーションの画像ビューアを作成しています。私は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);
}
ここでマウスの動きとともにこの長方形の領域をドラッグしています。私はこの時点まで、私のマウス
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();
}
マイコードと一緒に、この矩形を移動しようとしています
ここ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;
}
が正常に動作しています。 今度は、逆ドラッグ領域(ドラッグ領域外の領域)を暗くしたいと思います。この領域内にある領域がドラッグ中に強調表示されるはずです。
どのように進めるか。
ありがとうございました。
-Pankaj
ありがとうございましたLucas、それはまさに私が必要としたものです。 はいこのRectangleをカスタムPictureBoxクラスの上部に作成しましたが、このRectを移動するだけでなく、完全にサイズを変更することもできます(コーナーの1つを保持) もう一度ありがとうございます。 – Pankaj
私はそれが助けてうれしいです:)。あなたが私の答えを正しいと印を付けることができれば、私は感謝するでしょう:)。 –