【发布时间】:2012-03-28 20:14:09
【问题描述】:
我正在尝试使 Splash Screen 4 成为 Win 应用程序。
我的设置:
表单边框样式设置为无。起始位置是屏幕中心。 表单的背景图片设置为 PNG 文件,带有圆角边缘和“内置”投影。
在我设置的代码中:
this.SetStyle( ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle( ControlStyles.UserPaint, true);
this.SetStyle( ControlStyles.DoubleBuffer, true);
this.SetStyle( ControlStyles.SupportsTransparentBackColor, true);
this.AllowTransparency = true;
this.BackColor = Color.Transparent;
但是当我测试时,它说表单不能有透明的背景颜色。
我不想设置透明键,因为它会导致 dropschadow(png 的半透明部分)出现问题
我也不想将不透明度设置为 0%,因为它也会影响我的 PNG。
事实上,我只希望我的 png 显示为窗口。另外,它上面还会有一些动态文本,将来还会有一个进程栏......
有什么想法吗?如何判断表单是否有透明背景就像 ADOBE PHOTOSHOP CS5 的启动画面
【问题讨论】:
-
您所要求的内容在您通过 Project -> Add -> New Form 单击的默认表单中不可用。您需要做的是扩展默认功能。您已经在发布的代码中获得了一些先机——这就是您将添加到扩展表单类(或它的一些修改版本)中的内容。您要添加的其他内容是自定义区域,以定义您的表单形状。忘了怎么做透明度。想出一些资源链接。
-
资源链接:stackoverflow.com/questions/5092216/… 和 stackoverflow.com/questions/1592876/…。但不确定您的透明度,因为您不想使用透明度密钥。
-
老实说,为了避免使用透明键的替代方法可能带来的麻烦和复杂性,您不妨编辑掉 PNG 的边框(只需在 Microsoft Paint 上擦除这些像素,或使用魔术棒选择Photoshop 中启动屏幕的其余部分,反转选择并删除边框)并自己重新绘制。
-
首先,我对 c# 几乎是新手,所以我不明白 X__X 我不明白你编辑 png 的意思。 splashscreen.png -> acid.chdustar.com/mpx2%20splash.png 以及扩展表单类是什么意思?
-
我不知道从哪里开始。没有任何方法可以隐藏窗口,但将 png 保留为任何包装器等的子级?我还看到了一个名为 splash() 的方法或类似的东西……但我真的不记得了。你有任何资源或代码要处理吗?我已经用谷歌搜索了几个小时,但我找不到对我有帮助的东西。
标签: c# background png transparent splash-screen