0
對於具有擴展邊框的WinForm
,當我在玻璃區域上放置文本時,它不顯示正確。玻璃窗體上的文字不顯示正確
這是文字的樣子Status
a busy cat http://img833.imageshack.us/img833/4732/95454282.png ![表] [1]
我怎樣才能解決這個文本通常出現?
對於具有擴展邊框的WinForm
,當我在玻璃區域上放置文本時,它不顯示正確。玻璃窗體上的文字不顯示正確
這是文字的樣子Status
a busy cat http://img833.imageshack.us/img833/4732/95454282.png ![表] [1]
我怎樣才能解決這個文本通常出現?
Winforms中的文本以alpha爲0呈現。這使得它在透明玻璃上繪製時透明。所以你會看到背景顏色,而不是你選擇的ForeColor。
在玻璃上繪製文字是很麻煩的,因爲文字的背景沒有很好的定義,所以你不能很容易地將它正確地消除鋸齒。請注意,屏幕截圖顯示了Windows如何解決該問題,窗口標題中的文本具有乳白色背景,從而確保了抗鋸齒功能能夠正確地將字母混合到背景中。
這也是你需要做的。您可以使用帶有DTT_GLOWSIZE標誌選項的pinvoke,DrawThemeTextEx()來繪製文本。訪問pinvoke.net獲取所需的聲明或使用this project。不要忘記提供一個回退,所以這個窗口在舊版本的Windows上看起來還不錯。和更新的版本,玻璃已不再適用於Windows 8.
繪製文本的作品,但很難繪製窗體中的每一個文本,但無論如何感謝。是的,我爲每個Windows版本都有不同的方法。 –
爲什麼文本會以0的alpha值呈現?或者它是一些遺留的渲染,沒有alpha渲染,只是默認爲零? – Triynko
是的,GDI是24位的。 –