无法获得渐变透明边框以正确显示

时间:2010-11-12 04:43:46

标签: c# winforms system.drawing

我无法使用渐变透​​明度正确显示表单背景图像。也就是说,图像的边缘(或任何地方)具有衰落或非255的Alpha值。结果是,Alpha不是255(或0 - 我不记得),我看到了我的背景颜色。这是一个screen shot

我在这个设置中有一个24位bmp文件,绿色背景,我试图通过Form.TransparencyKey属性键入:

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);

    Color key = ((Bitmap)this.BackgroundImage).GetPixel(0, 0);
    this.TransparencyKey = key;
}

我也尝试将Form的BackColor属性设置为相同的键值,但这并没有什么区别。

我还尝试将我的图像保存为具有透明度的png并输出整个表单背景,但这也不起作用。

我知道这有可能以某种方式,我已经看到像Photoshop这样的应用使用了十年。如果重要的话,我会使用WinXP Pro。

任何人都有这方面的经验,并知道我错过了什么步骤或做错了什么?

2 个答案:

答案 0 :(得分:1)

我确实错过了这段时间 我发现WinForms处理这个问题很简单 以下是一些您可能会觉得有用的解决方案:
http://www.c-sharpcorner.com/UploadFile/scottlysle/XparentFormsCS10282007212944PM/XparentFormsCS.aspx http://blogs.msdn.com/b/mswanson/archive/2005/07/07/436618.aspx
http://www.vcskicks.com/splash-screen.php

答案 1 :(得分:1)

Form的WinForms实现仅允许将纯色用作透明度键。不可能有不同程度的透明度。

大多数像你这样的启动画面的应用程序会截取桌面的屏幕截图(在它们的启动画面占据的范围内),然后将它们的启动画面组合在此屏幕截图的顶部。然后,他们将结果位图显示给用户,给人一种alpha渐变的印象。