我无法使用渐变透明度正确显示表单背景图像。也就是说,图像的边缘(或任何地方)具有衰落或非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。
任何人都有这方面的经验,并知道我错过了什么步骤或做错了什么?
答案 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渐变的印象。