2010-11-12 58 views
0

我无法让我的窗体背景图像以渐变透明度正确显示。也就是说,图像的边缘(或任何其他地方)具有淡入淡出或非255的Alpha值。结果是,无论在什么地方,Alpha都不是255(或者0--我不记得了),我看到了我的背景颜色。这里是一个screen shot无法获取渐变透明边框以正确显示

我有这个设置是我试图通过Form.TransparencyKey属性键出绿色背景24bit的bmp文件:

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。

任何人都有这方面的经验,并有一个想法,我失踪或做不正确的步骤?

回答

1

的WinForms的实施Form只允许纯色用作透明度的关键。不可能有不同程度的透明度。

大多数启动屏幕类似于你的桌面屏幕截图(在其启动屏幕将会占用占用的范围内),然后将其启动屏幕合并到此屏幕截图的顶部。然后他们将结果位图显示给用户,给人一种alpha梯度的印象。

+0

这是一个巧妙的解决方案。如果我无法用阴影拉出可接受的外观,我想我会去屏幕截图路线。无论如何,我还是需要使用屏幕截图功能,所以我不妨进入并了解它。谢谢(你的)信息。 – 2010-11-12 05:24:24

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

+0

其中的一篇文章给了我一个想法,我可以使用阴影来伪造我之后的效果。谢谢。 – 2010-11-12 05:22:49