2011-02-11 40 views
1

我正在用C#編寫一個表單,並有幾個面板。我需要在兩個面板之間畫一條線。我在網上發現了幾種方法可以解決這個問題,最有希望的方法似乎是創建第三個面板,使其透明,將其放在我原來的面板上並在此處畫線。如何在另外兩個面板上創建一個透明的System.Windows.Forms.Panel,然後在透明面板上繪製一條線?

即使將BackColor和ForeColor屬性設置爲透明(在代碼或VS的設計視圖中),我也無法讓面板變爲透明。

關於如何使面板本身透明(或不可見)的任何想法,但我已畫出的線仍然可見在所有其他的頂部?

在此先感謝。

回答

2

不,它是透明的。通過給表單的BackgroundImage一個值來看到這一點。你會通過透明面板看到它。當然,這不是你想要的那種透明度,你想要堆疊效果起作用。沒有直接的支持。

如果你想要圖層工作,那麼不要使用控件。使用Paint事件繪製。現在沒有問題,如果你想透明,那麼就不要畫。簡單地通過首先繪製圖像在圖像上畫一條線。這也是WPF的渲染模型。

+0

有沒有辦法繪製從一個面板到另一個面板的線條?除了繪製兩條在各自面板邊緣相交的獨立線條之外。 – Boumbles 2011-02-11 21:00:59

0

實際上,您可以像您自己的UserControl一樣輕鬆地完成此操作。下面是一個代碼示例:

Drawing on top of controls inside a panel (C# WinForms)

這類似於您最初試圖做的,而不是隻畫線的透明面板的頂部,該代碼創建一個不規則形狀的用戶控件(其恰好在一條線的不規則形狀中)。