2009-11-14 87 views
0

我編碼的應用,在那裏我使用去喜歡的事,所以代碼顯示在System.Windows.Forms.Panel一個System.Drawing.Icon對象:圖標平滑移動面板上

Graphics g = _panel.CreateGraphics(); 
g.DrawIcon(this.NodeIcon, _rectangle); 

我有使用拖放式拖放圖標的代碼。 我的問題是,當用戶移動圖標周圍時,它不是光滑的。 圖標看起來扭曲,直到用戶停止移動圖標。

我試圖在網上找到關於這個的信息,但是我不能讓它平滑。我很少有這種編碼(使用圖形)的經驗,所以我是這個新手。

如果任何一種靈魂可以幫助我一些提示,將不勝感激。

在此先感謝!

+0

我有不知道,似乎拖着,重繪算法發生並且效率不高。 – 2009-11-14 02:03:30

+0

我認爲你有類似的問題? – Freddy 2009-11-14 02:15:21

+0

@Freddy:不是,那是我的預感:P – 2009-11-14 02:38:42

回答

0

我相信你要做的就是重新繪製MouseMove事件處理程序的控件。看起來像你的問題是重繪面板時的閃爍。首先,您可以嘗試執行的操作是將面板的屬性設置爲DoubleBuffered。這樣做,您可以將面板設置爲使用輔助緩衝區重繪其表面以減少或防止閃爍。此屬性是受保護的,所以你需要創建一個新的面板後裔:

public class TestPanel : Panel 
{ 
    public TestPanel() 
    { 
    DoubleBuffered = true; 
    } 
} 

,你可以通過反射爲您的面板DoubleBuffered財產

希望這有助於替代,對於

+0

感謝您的評論。我會嘗試以及其他評論中的其他提示。當我解決了這個問題後,我會讓你知道。 – Freddy 2009-11-14 15:55:17

+0

謝謝!我終於有時間來測試這些技巧,DoubleBuffered做了我所需要的。再次感謝! – Freddy 2009-11-20 22:34:33