仅表单不透明度

时间:2009-06-21 13:43:31

标签: c# .net winforms

首先,我将向您展示我正在尝试在纯NET中重新创建的内容。

Image

我重新创建了“库存”窗口,唯一剩下的就是蓝色不透明度窗口,它显示了信息。

如果我使用opacity属性,那么该窗体上的所有内容都具有不透明度,但在图片上文本没有不透明度。

如何仅在表单上创建不透明度?

3 个答案:

答案 0 :(得分:1)

Opacity属性仅存在于表单上,因此无法在其中包含的控件上覆盖它。

我确实认为稍微透明的背景图片可能会产生您想要的效果 - 但我刚试过它并且似乎没有效果。

答案 1 :(得分:0)

不确定这是否有帮助,但我唯一能想到的就是使用WPF的唯一方法就是使用TransparencyKey和表单的背景颜色。只需确保您的TransparencyKey未设置为默认控件或灰色,可以将表单的背景颜色设置为红色或其他内容。如果您寻找部分透明度,您可能最终不得不使用WPF。就个人而言,我从未尝试过在实际表单上使用WPF的不透明度,所以你“可能”得到相同的结果,但......

编辑:WPF导致相同的情况。表单下的所有控件都随表单变得透明。可能是因为它们固有形式属性。

答案 2 :(得分:0)

你可以用这个:

    using System.Drawing.Drawing2D;

    private void Form1_Paint(object sender, PaintEventArgs e)
    {
        var hb = new HatchBrush(HatchStyle.Percent50, this.TransparencyKey);

        e.Graphics.FillRectangle(hb, this.DisplayRectangle);
    }

等你帮帮忙..再见