2011-09-02 28 views
3

有沒有一種方法(不包括項目中的新控件:)來自定義SplitContainer,以便直觀地向用戶指示有一個拆分器容器(我有一個水平的容器),而不僅僅是一些控件之間的空間?強調SplitContainer

enter image description here

PS。

我想不要修改顏色。此外,我發現3D邊框醜陋..也許填寫分割分隔符空間中的「圖片」?

+1

像改變其顏色?應該是可能的,看看控制的屬性:) –

+0

BorderStyle,backcolor,邊界大小或容器或內部面板 – hungryMind

+0

@Davide Piras,hungryMind:看到我的帖子中的PS) – serhio

回答

0

如果要定製仍然使用該控件的控件(有意義),並且提供的屬性不足以滿足您的需求,則可以始終覆蓋WindowProc並處理WM_PAINT消息,以便您可以繪製任何您想:)

+1

所以,你建議我自己畫控制。 – serhio

+0

是的,如果你需要添加一張圖片,而且這個圖片還不被支持,並且控件不允許你輕鬆地處理OnPaint事件,你可以總是捕獲像WM_PAINT這樣的Windows消息,並且在那裏做你需要做的事情:)基本的Windows API編程仍然在.NET中有效:) –

1

選擇的SplitContainer並更改邊框以Fixed3D得到這樣的效果:

enter image description here

+0

)是的,我試過這個。我的應用程序樣式是平坦的,所以我可以使用平面模式...我想只有3D分離器,而不是面板。此外,如果分離器是水平的「不太明顯」,對於一個垂直的... – serhio

+0

我不確定如何實現這一點,而不添加任何更多的控制。我會考慮添加面板並停靠填充它們,然後嘗試使用它們的外觀設置。 – kaze

0

只要改變BackColor財產別的東西,但後來改變兩個內側面板不同的顏色:

splitContainer1.BorderStyle = BorderStyle.None; 
splitContainer1.BackColor = SystemColors.ControlDark; 
splitContainer1.Panel1.BackColor = SystemColors.Control; 
splitContainer1.Panel2.BackColor = SystemColors.Control; 

走完再看(我知道你說的不添加其他控件,所以忽略了這一部分,如果這是必須的),將SplitContainer的面板內,Dock.Fill它具有這些父面板屬性:

splitParent.BackColor = SystemColors.ControlDark; 
splitParent.Padding = new Padding(1); 

結果:

enter image description here