2009-08-11 37 views
0

我想將一個帶有透明背景的LinkLabel放在TabControl上。該選項卡控件沒有任何tabpage。TabControl透明LinkLabel

由於無法將TabPages以外的其他控件添加到TabControl中,因此我需要將LinkLabel添加到包含TabCOntrol的控件中,然後在LinkLabel上使用BringToFront。這顯示在TabControl上。

問題:LinkLabel顯示爲透明(BackColor屬性),但不是將TabControl的顏色顯示爲背景,而是顯示其父項的背景顏色,該控件還包含TabControl。 從我所瞭解的情況來看,這是正常的行爲,因爲透明的BackColor意味着它只需要父母的顏色。

問:是否有任何解決方案顯示我的LinkLabel與TabControl的背景顏色?

感謝

+0

編輯:我建議使用TabControlRenderer類來呈現LinkLabel的背景,這也適用。 – David 2009-08-15 22:39:37

回答

1

我可能是錯的,但我認爲,如果你更改代碼的LinkLabel的背景色屬性(例如,在你的窗體的Load事件,而不是僅僅將其設置在設計師)來匹配你的TabControl的顏色,它會以你想要的方式工作。

+0

感謝您的回答,但它已經是我所做的(從代碼中設置它),它不起作用:( 顯然,BackColor = Transparent意味着它將採用父級的背景色 – David 2009-08-12 07:51:46

+0

是的,將BackColor設置爲透明,實際上就是說,使用父母的BackColor,我認爲Music試圖說的是將BackColor(在代碼中,在運行時)設置爲tabcontrol.BackColor。 – NascarEd 2009-08-12 13:14:39

+0

What Ed說。:) – MusiGenesis 2009-08-12 13:21:49

0

感謝您的回答。我現在明白你的意思了。

使用選項卡Control的BackColor將不起作用,因爲此屬性始終返回灰色的ColorSystemColors.Control。但是,在使用視覺樣式(例如XP的默認主題)時,TabControl的背景顏色是白色的。我不能使用白色作爲選項卡控制不是純白色,但漸變白色...

+0

查看所有可用的系統顏色,你可能會找到你需要的。 – MusiGenesis 2009-08-13 02:41:04

+0

根據我的理解,這不是系統顏色,但它是在uxtheme.dll中定義的。 也許解決方案是使用該dll的本地方法來繪製標籤的背景......太麻煩了。 我結束了使用我在那裏找到的透明標籤,並修改它看起來像一個LinkLabel。 http://www.codeproject.com/KB/miscctrl/SimpleLine.aspx 感謝您的幫助無論如何:) – David 2009-08-13 10:46:23