2013-02-21 47 views
2

無論如何,我在選項卡控制方面有點困難。當我將一個新的選項卡控件拖放到窗體上時,它顯示爲白色,而不是我期待的灰色(系統顏色)。透明選項卡控件顯示爲白色

當我查看屬性時,它的顏色設置爲透明網頁。好吧,所以它應該是透明的(它不會讓任何背後的東西顯示出來)。手動將選項卡控制背景顏色設置回系統灰色類型的作品,但頂部的選項卡仍顯示爲白色。我假設我能以某種方式改變它們的顏色,但我很快進入了從默認值改變很多值的領域,我顯然錯過了某種類型的領域。我儘可能地使用了各種各樣的「透明標籤控件繪製白色」,儘管我發現了一些與windows配置文件有關的事情,但這似乎大多侷限於使用您訪問過的vb訪問2003。

我正在尋找任何解釋到:

  • 什麼,我需要做的正確使用透明度選項卡控制
  • 什麼,我誤理解爲透明標籤控件目的
  • 如何輕鬆地將選項卡控件的相應部分的所有顏色更改爲不透明。

我在看一個MCTS的windows窗體,所以請不要給「你應該用X代替」鍵入答案。

回答

5

不,白色肯定是正常的。啓用視覺樣式時,使用主題顏色呈現TabControl和TabPage。因此,使標準Windows主題的機器上的標籤頁變爲白色。

是的,Transparent的默認BackColor非常不尋常。你肯定永遠不會得到實際的透明度,除非你認爲TabControl的背景是透明的。其中的邏輯是很令人費解,而不是試圖去解釋我就粘貼MSDN解釋:

背景色屬性的默認值是Control.DefaultBackColor財產,除非UseVisualStyleBackColor和Application.RenderWithVisualStyles的價值屬性值都爲true,並且父級TabControl的Appearance屬性的值爲Normal,在這種情況下,BackColor屬性的默認值爲Transparent。放置在TabPage上的子控件默認繼承BackColor值,所以此行爲會導致子控件的背景以當前視覺樣式進行渲染。

更改BackColor屬性的值會自動將UseVisualStyleBackColor屬性設置爲false。如果您希望TabPage背景使用視覺樣式呈現,但您希望子控件繼承您指定的BackColor值,請在設置BackColor屬性後設置UseVisualStyleBackColor屬性。