作者pokia (幻影成風)
看板C_Sharp
標題[問題] 畫圖
時間Wed Oct 31 23:08:01 2007
我想在OnMouseMove的時候能夠產生拖曳圓形的樣子
protected override void OnMouseMove(MouseEventArgs e)
{
g.Clear(Color.whilte);
g.DrawEllipse(................);
}
這樣一來就可以成功有拖曳圓形變大變小的感覺了
可是在畫下一個圓形時會碰到g.Clear(Color.whilte);的影響
造成上一次畫的圓形會消失...
有沒有辦法讓所有的圖形留在graphics上 而且也要有拖曳的效果?
如果使用
g.DrawEllipse(new Pen(Color.White,5), ............);
g.DrawEllipse(new Pen(ForeColor,5), ...............);
在畫下一個圓時 把上一個圓清除 好像可以達成這個效果
可是如果兩個圓有接觸時 前一個圓某部份會變白色....= ="
不知道有沒有辦法解決~~~謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.116.164.3
推 FantasyRyu:你講的是Layer的概念。把Layer建成Object就解決了。 11/01 20:41
推 pokia:可以麻煩樓上的大大再說明一下嗎??我有點不太清楚 11/02 00:19
推 FantasyRyu:這是圖層的概念,請把每一層建成物件方便重繪 11/02 12:26
→ FantasyRyu:如果不想加上Undo功能,就把畫過的層統統建成一堆就好 11/02 15:35