表格看起来像一个气球

时间:2009-12-12 09:14:16

标签: c# .net winforms

我只是想在.net中使用自定义形状的气球形状在winform中创建一个表单控件。 需要一个透明的气球工具提示,我可以将按钮放在工具提示上,但是 .net中的工具提示不能提供我们可以将按钮放在工具提示控件上的方法 我想让一个表单控件看起来像一个气球工具提示,所以我可以把那个表单上的按钮看起来像一个工具提示。但我不能显示窗口控件看起来像一个气球工具提示。 所以我该怎么做?? 我试着以一种方式在气球形状的powerpoint中创建一个图像并将其设置为form属性的背景图像。但是没有解决方案。

2 个答案:

答案 0 :(得分:1)

Control类支持具有alpha<的BackColor。 255,它是自动的。它要求Parent绘制自己以产生控件的背景,然后在此基础上绘制。但是,您需要一个气球的顶级窗口。这是一种窗口类型,可以任意地与另一个窗口重叠,并且不受底层窗口的客户区域的限制。它没有父母。工具提示就是这样一个窗口。

Windows窗体中唯一可用作顶级窗口的控件是Form。问题是:透明度技巧不再有效。由于顶级窗口没有父级,因此没有任何明显的窗口要求绘制背景。它可能是许多窗口,属于其他进程。您可以使用TransparencyKey属性在Form中获得透明度。但这是一个“硬”透明度,相当于0的alpha值。你可能想要一个柔软的透明度。另一个令人讨厌的问题是绘制抗锯齿(ClearType)文本不再有效,因为不再有可靠的背景像素颜色。

长话短说:除非您将气球限制在表单的客户区域,否则无法使其正常工作。控件,而不是表单。

答案 1 :(得分:0)

您可以尝试挂钩控件的Paint事件,并在那里绘制按钮的Visual。