2010-04-06 32 views
5

我想繪製百分比進度條在它的中心, 但我想的文本(對比)顏色的背景借鑑與背景的彩色負片.NET控件文本 - 混合

因此,ProgressBar的填充部分上方的文本部分將是白色,而部分未填充部分將是白色。

我可以簡單地通過「作弊」

  • 畫文本第一
  • 畫進度矩形的部分做到這一點(它會覆蓋到被隱藏的部分)
  • 白色文本只在進度矩形上(剪切它)

執行在這個應用程序中對文本進行兩次繪製的影響可以忽略不計,但是我感興趣的是如果有一些簡單的方法只用兩個步驟來完成(例如讓進度條以某種方式反轉已經繪製的文本)與混合

+0

如何剪切白色文本? – farukdgn 2016-06-29 15:22:25

+0

@farukdgn'graphicsObj.Clip = new Region(rectangle);' - 這會將'Graphics'對象中的繪圖限制到您設置的'Rectangle'的區域。 – domi1819 2017-04-21 21:42:48

回答

4

你在做什麼很好。像SetROP2()這樣的舊技巧不再適用於獲取反鋸齒的文本,特別是在ClearType渲染時。獲取具有錯誤顏色的混疊像素非常明顯。 Graphics.CompositingMode相應地不再支持這些效果。

0

您可以使用XOR來計算負(反轉)顏色;

Public Function InvertColor(color As Long) As Long 
    Return (color Xor &HFFFFFF) 
End Function 
+0

這是沒有問題的,我知道基地和倒置的顏色,但我問如何做「異或」混合圖形 – Axarydax 2010-04-06 08:43:35