我正在使用自定義控件的Window CE應用程序。如何選擇性重繪形狀保持其他完好
在自定義控件中,我正在繪製三個圓圈(填充一個圓圈),一個箭頭一個文本和一個手動線條。它就像Photoshop中的角度選擇器。
現在當我移動光標完成控制重繪並導致閃爍的影響。
我已經嘗試繪製控制位圖第一,然後在最後使用e.drawimage()方法繪製此位圖,但閃爍問題相同。
現在我只有2個形狀(箭頭+線)需要重繪,其他人靜態行爲。
所以我的問題是有沒有辦法選擇性繪製形狀保持其他完好無損。第一次繪製所有形狀,但繪製箭頭和線後保持所有其他形狀在那裏的位置完好無損。
這是我在
onPiant重寫方法正在做的。
using (SolidBrush inLineFill = new SolidBrush(circleColor))
{
Point[] polyPoints = ...;
e.Graphics.DrawLine(....);
e.Graphics.FillPolygon(inLineFill, polyPoints);
if (firstTime)
{
e.Graphics.DrawEllipse(...);
e.Graphics.DrawEllipse(...);
e.Graphics.DrawEllipse(...);
e.Graphics.FillEllipse(...);
e.Graphics.DrawString(...);
firstTime = false ;
}
}
我看到的完全控制第一次,但我只看到後,該行的箭頭。
您需要在'OnPaint'中完全重繪,但是隻需通過'Invalidate(rect)'刷新屏幕的一部分來減少重新導入。或者通過在Graphics對象上設置適當的剪輯邊界。 – Marcin 2012-03-08 12:57:37