我有一個應用程序,它使用鼠標在picbox圖像上自由繪製矩形。但矩形只顯示在picbox後面,而不是在它的頂部。有沒有可以解決這個問題的財產? (在picbox圖片的頂部顯示rect而不是在後面)。下面是代碼:繪製矩形的Z-Index C#
System.Drawing.Graphics picboxGraphics;
bool mDown = false;
int mouseX;
int mouseY;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
mDown = true;
mouseX = e.X;
mouseY = e.Y;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (mDown == true)
{
this.Refresh();
Pen drawPen = new Pen(Color.Red, 5);
int width = e.X - mouseX, height = e.Y - mouseY;
Rectangle rect = new Rectangle(mouseX, mouseY, width * Math.Sign(width), height * Math.Sign(height));
picboxGraphics = this.CreateGraphics();
picboxGraphics.DrawRectangle(drawPen, rect);
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
mDown = false;
}
您可以簡單地製作位圖並在位圖上繪製,然後設置圖片框的來源。現在,圖片框的內容實際上被設置爲它將始終顯示在其容器上的圖像。 – Franck
我以前沒有使用位圖,但這可能有助於保存修改後的圖像 – ajm
搜索從位圖創建圖形。非常容易,它的做法與您的示例代碼完成相同,除了執行picturebox.draw()它就像MyBitmap.draw()。您可以使用Class'Bitmap'或簡單的'Image',它們都可以直接保存爲流或文件。他們在'System.Image'如果我記得 – Franck