在Win7主題中效果不錯,但在贏得經典主題時看起來很奇怪。爲什麼在Win Classic主題TabControl的背景不會改變顏色?
在Win 7主題:
在Win經典主題:
是否有任何機會,以解決這一問題?
在Win7主題中效果不錯,但在贏得經典主題時看起來很奇怪。爲什麼在Win Classic主題TabControl的背景不會改變顏色?
在Win 7主題:
在Win經典主題:
是否有任何機會,以解決這一問題?
這是設計。它與「改變顏色」沒有任何關係,它實際上是一種透明效果。該窗口是矩形的,不適合標籤。控件首先通過要求父窗口繪製自己,傳遞自己的窗口句柄來繪製標籤的空間。然後在上面繪製標籤。你可以通過設置父級的BackgroundImage屬性來看到這一點。也就是說,標籤和圖片框控件模擬透明度。
這是由視覺樣式渲染器實現的行爲。 Windows Classic不使用任何透明度效果。
如果這對你真的很重要,那麼請考慮WPF。它沒有爲其控件使用窗口,因此不受所選主題的影響。
如果您真的想要自己的風格獨立自定義選項卡,draw the tab yourself使用OwnerDrawFixed
。見example on codeproject。
其同樣的問題去How to change the background color of unused space tab in C# winforms?
您在W7`Application.DisableVisualStyles()時超載OnPaintBackground
方法
'它的工作原理相同的方式,在Win經典 – Steven