2011-03-09 43 views
4

我在C#應用程序中有一個ToolStrip,我將背景顏色設置爲Transparent。這揭示了底層窗體的顏色,但不幸的是ToolStrip邊框仍然可見。C#ToolStrip是透明的,但邊框仍然可見?

我已經實現了一個自定義渲染器,並且重寫了DrawBoarder方法,以便不繪製任何東西,但似乎也適用於所有包含的按鈕(即下拉按鈕上的菜單也沒有邊框繪製)。

所以我卡住了。繪製透明整個ToolStrip的最好方法是什麼,但不要單獨使用按鈕?

回答

2
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) 
{ 
    if(e.ToolStrip.GetType().Name != "MyCustomToolStrip") 
    { 
     base.OnRenderToolStripBorder(e); 
    } 
} 
0

由於您試圖隱藏工具條,但保留按鈕,我必須將其放在那裏。

你甚至需要工具條嗎?

如果您只是在應用程序中使用了按鈕而沒有看似不需要的工具條,那可能會更好。

+0

在我的特殊情況下,它更便宜地使用的工具條比什麼都重要。 –

4

我試着重寫OnRenderToolStripBorder方法,它似乎並不影響按鈕。你是否嘗試過這樣?

public class TestStripRenderer : ToolStripProfessionalRenderer 
{ 
    protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) 
    { 
    } 
} 
+0

如果將下拉按鈕添加到工具欄,下拉按鈕的菜單是否帶有或不帶有邊框?在我的系統中,此代碼刪除了工具條的邊框和下拉菜單的邊框 –

+0

下拉菜單似乎在使用或不使用此自定義渲染器時呈現完全相同。 –