2009-12-12 134 views
1

我只是試圖在自定義形狀的氣球形狀的.net winform中創建窗體控件。 需要一個透明的氣球工具提示,我可以在工具提示上放置按鈕,但.net中的工具提示沒有提供我們可以將按鈕放在工具提示控件上的功能,因此我想使窗體控件看起來像一個氣球工具提示,所以我可以把按鈕放在窗體上看起來像一個工具提示。但我不能顯示窗口窗體控件看起來像氣球工具提示。 那我該怎麼辦? 我嘗試了一種方式,我在氣球形狀的Powerpoint中創建圖像,並將其設置爲表單屬性的背景圖像。但是沒有解決方案。窗體看起來像一個氣球

+0

在Winforms中這不是一件簡單的事情 - 您必須創建一個自定義控件/其他類型的窗口,如其他答案所示。是的,這將涉及一些工作。 – 2009-12-12 09:29:41

+4

@Harikrishna - 請不要問同樣的問題。如果有什麼不清楚的地方,編輯這個問題來澄清它。我已經合併了重複項。 – 2009-12-12 11:14:00

回答

1

Control類支持一個帶有字母< 255的BackColor,它是自動的。它要求家長自己繪製出控制的背景,然後吸引自己。但是,您需要氣球的頂級窗口。這是一種窗口類型,可以任意疊加另一個窗口,並且不受基礎窗口客戶區的限制。它沒有父。工具提示就是這樣一個窗口。

Windows窗體中唯一可用於頂級窗口的控件是窗體。問題是:透明度技巧不再有效。由於頂層窗口沒有Parent,因此沒有任何明顯的窗口要求繪製背景。它可能是許多窗口,屬於其他進程。使用其TransparencyKey屬性可以在窗體中獲得透明度。但這是一個「硬」的透明度,相當於一個0的alpha。你可能想要一個軟的。另一個令人討厭的問題是,由於沒有可靠的背景像素顏色,繪製消除鋸齒(ClearType)文本不再有效。

長話短說:除非將氣球限制在窗體的客戶區,否則無法做到這一點。一種控制,而不是一種形式。

0

您可以嘗試掛鉤控件的Paint事件並在其中繪製按鈕的視覺。