2011-10-04 69 views
0

http://fc04.deviantart.net/fs71/f/2011/277/7/6/problem_by_tekuconcept-d4btjlx.png正確繪製文本上對比它控制的背景

正如圖所示上面,我希望能夠繪製字符串對比。 我讀過這個鏈接:關於同樣的事情(技術上)(http://stackoverflow.com/questions/1192543/drawing-a-contrasted-string-on-an-image/1192560#1192560),那裏我發現了這個鏈接:talking about how to create an XOR pen/brush。我在繪製到面板時嘗試了GDI,但是在初始化時,我得到了一個「...檢測到不平衡堆棧...」。有沒有一種方法可以產生這種效果(無需接近應用發光/輪廓)。

我想我可以繪製一種顏色的位圖以及其他相同的方式。合併它們,我目前不知道如何去做,而且我不確定它會對計算機性能產生什麼影響。

(對於任何人都好奇我在做什麼......我創建了一個基於當前專業GUI風格的定製設計控件集合): fc09。 deviantart。 net/fs71/f/2011/277/0/9/controls_by_tekuconcept-d4btji9.png

回答

3

使用不同的裁剪區域和不同的顏色繪製文本兩次。

0

我目前的這種進度條實現使用了兩個位圖,它們代表了進度條的兩半。

1)繪製一個與當前進度值一樣寬的位圖。
2)用進度條顏色填充它。
3)將文本寫在適當的位置,就好像它在控件中間一樣。它可能會切斷權利。
4)繪製一個與進度條其餘部分一樣寬的位圖。
5)用背景顏色填充它。
6)將文本寫在相同的位置,以便它位於圖像的左側。
7)合併兩者。

這是一個黑客,但它的作品。

+1

我想我明白你的意思,以及我怎麼能夠做到這一點(也許)。目前我在UserControl中做的是繪製事件,我按照這個順序繪製:背景,欄,邊框,文本。根據你的說法,我相信我可以在背景之後使用一種顏色繪製文本,然後在使用剪裁平面之後使用另一種顏色繪製文本。謝謝你,我的輪子再次轉過頭來...... – TekuConcept