透明度键弄乱了透明图像

时间:2012-04-21 13:51:52

标签: c# winforms .net-4.0 transparency

我有一个C#WinForm,它有一个透明的Lime键。我还将表单的背景颜色设置为Lime。这非常适合按钮和几乎任何你能想到的东西。表单看起来不存在,允许我创建自定义表单。

我有一个背景为透明的图片框,图片框图像有一个投影。当我运行应用程序时,投影不透明。卓尔阴影具有背景颜色(石灰)的背景颜色。它看起来很可怕。

如何使用透明表格,也可以正确地放置透明图像。

SWTOR游戏启动器等程序有这个漂亮的背景投影,所以我知道这是可能的。

谢谢!

1 个答案:

答案 0 :(得分:0)

你正在寻找两件事之一,Windows Regions
OR
Layered Windows

这是C#

excellent example

或者我把它放在一起的一个例子:

    protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
    {
        GraphicsPath gp = new GraphicsPath();
        Region r;
        PointF[] p = new PointF[9];
        p[0] = new PointF(70, 0);
        p[1] = new PointF(170, 0);
        p[2] = new PointF(240, 70);
        p[3] = new PointF(240, 170);
        p[4] = new PointF(170, 240);
        p[5] = new PointF(70, 240);
        p[6] = new PointF(0, 170);
        p[7] = new PointF(0, 70);
        p[8] = new PointF(70, 0);
        gp.AddPolygon(p);

        r = new Region(gp);
        this.Region = r;

        gp.Dispose();
        r.Dispose();
    }

您需要将此代码放入您希望它生效的表单中。