我使用onPaint與timer_tick上的Invalidate()重繪,我如何繪製一個不應該與其他重繪的背景?C#使用onPaint與計時器
我試過使用pictureBoxes,但他們出現在OVER的onPaint上繪製,我也無法使用透明圖像。
我使用onPaint與timer_tick上的Invalidate()重繪,我如何繪製一個不應該與其他重繪的背景?C#使用onPaint與計時器
我試過使用pictureBoxes,但他們出現在OVER的onPaint上繪製,我也無法使用透明圖像。
對於這樣的事情,Windows窗體庫是非常糟糕的。因爲沒有任何顯示數據被緩衝,所以每次重新繪製(如果足夠慢)都是可見的並且浮華。一般而言,透明圖像無法按照您的要求進行操作。我不完全知道你最終想要完成什麼,但如果你只是在玩圖形,我會建議你使用類似Win2D API的東西。就使用而言,Win2D API與onPaint事件非常相似。
我的意思是,理論上你可以使用Regions來使事物透明,但它們不能讓事物像50%透明,但只能完全透明。幾年前,我嘗試用Windows窗體做花哨的圖形,而且我真的不建議這樣做。
你能展示一些你的代碼嗎? – Cjen1
爲什麼你想要背景不被着色?當系統需要重新繪製時,它將被銷燬! - 儘管如此,您可以將BackgroundImage設置爲不變背景。 - 另外:當您談論透明度時,您完全不清楚目標是什麼。請解釋清楚一點,否則我們不能真正幫助或建議..! – TaW
由於onPaint每10ms刷新一次,我希望有一種方法可以只畫一次某些東西(如背景)來減少負載。 – SJ19