我真的很難用C#繪圖,而且我使用的是Windows Forms而不是WPF,所以也許我從一開始就做錯了......你告訴我......但我想在PictureBox上(在MouseDown上)放置一個臨時標記,它將跟隨鼠標(刪除之前的自身圖形,即不留下蹤跡),然後被繪製在MouseUp事件的最後位置。在PictureBox中,在鼠標上畫一個臨時圓圈,跟隨鼠標,直到檢測到mouseUp事件爲止
下面是一些框架代碼,你們可以填寫:
bool mDown;
Graphics g; // initialized to pictureBox1.CreateGraphics() on Form_Load, though
// I am unsure how that differs from Graphics.FromImage(pictureBox1)
SolidBrush sbGray, sbGreen;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
mDown = true;
// store/push initial drawing
g.FillEllipse(sbGray, e.X - 5, e.Y - 5, 10, 10);
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (mDown)
{
// restore/pop initial drawing, erasing old trail
g.FillEllipse(sbGray, e.X - 5, e.Y - 5, 10, 10);
}
}
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
// restore/pop initial drawing, erasing old trail
g.FillEllipse(sbGreen, e.X - 5, e.Y - 5, 10, 10);
mDown = false;
}
我想有幾個方法對皮膚一隻貓,如改變鼠標的圖標,所以也許這甚至不是以最好的方式做它?即使如此,我也許需要知道這兩個問題的答案 - 是否有更好的方法來做到這一點,以及如何從PictureBox中提取圖形(因爲這些知識很可能稍後會有用)。
(注:雖然灰色圓圈應該抹去自己,綠色圓圈應該是持久的,多個綠色圓圈應該能夠在同一時間在PictureBox中現有的。)
有* *諸多問題,使用的createGraphics(),你沒有見過他們。當然,請改用pictureBox1.Cursor屬性,就是這樣。 –