C# - 透明表格

时间:2010-11-30 13:21:52

标签: c# forms winforms transparent

我目前有一张表格,除了一张之外,还有所有想要的效果。目前的形式由顶部的menustrip组成,下面有一个面板,其中包含标签和图片框。当表单启动时,menustrip不可见,只有当用户按下“Alt”按钮并且以相同方式消失时才会显示。

面板将具有透明背景(.PNG)的背景图像。这个图像将成为表单的主要布局,因为我将borderstyle设置为none。现在问题是表单在面板下面仍然有白色/浅灰色背景。

现在我的问题是我如何使表单透明,以便面板上的图像成为主要布局,而不仅仅是图像下方的背景颜色。我不想使用Opacity属性,因为我希望面板100%可见。

2 个答案:

答案 0 :(得分:29)

假设WinForms。

你可以这样做,但你不能使边缘半透明。

试试这个。

在表单上,​​设置以下属性:

BackColor = Color.Lime;
TransparencyKey = Color.Lime;

这将使表单透明。然后设置backgroundimage:

BackgroundImage = myImage:

background_mage的Color.Lime部分也将变得透明。

如果您还想摆脱Forms边框,请同时添加以下内容:

FormBorderStyle = FormBorderStyle.None;

答案 1 :(得分:3)

选择背景时要小心。选择Backcolor与您的文本,图像和任何控件的颜色不同,这意味着选择一种您将永远不会在表单中使用的颜色,我认为Fuchsia / lime将是最佳选择。选择背景颜色代码如下:

this.BackColor = Color.Fuchsia;

然后使用以下代码将该颜色设置为透明:

TransparencyKey = Color.Fuchsia;