3
我想改變使用GDI +繪製自己的控件的某些部分的顏色,例如,當某些對象被懸停/點擊時。如何防止GDI +重新繪製塗料上的所有內容?
如何僅重新繪製必要的零件?當我只需要對其中的幾個像素進行更改時,重新繪製數千個像素似乎不太合適。
具體而言,我繪製了從1到128個矩形的任意位置,我將需要在各種事件中重新繪製1到128個矩形的任何位置。我不想重新繪製128個矩形,以便僅更改爲1-127。
我讀過這是一個不好的想法使用繪圖代碼的地方是不是在繪畫事件。但是,依靠繪畫事件可以做到這一點嗎?
簡單的方法是將每個「矩形」用自己的繪畫程序作爲控件。然後有另一個容器類型控件「知道」矩形控制它擁有的方式。 – 2012-03-25 17:23:02
這已經在Windows中通過PaintEventArgs.ClipRectangle屬性進行了大量優化。您在該矩形外繪製的任何東西都可以快速完成,而無需燃燒週期。只需使用Invalidate(Rectangle)來設置它。 – 2012-03-25 17:32:31
無效()與矩形是完美的,謝謝!〜 – mina 2012-03-25 18:29:37