【发布时间】:2010-07-31 14:16:30
【问题描述】:
我会在下面给你看一张图片,但在那之前……
如果您看过 yahoo 小部件或卡通/主题 windows 媒体播放器皮肤..
我正在构建一个标题栏少...背景少...应用程序...它看起来像这样
(来源:deviantart.net)
你看到的较暗的背景实际上是我的壁纸因为这是一个屏幕截图...
为了实现这一点.. 身体和线条的形状,我使用透明 PNG.. 然后我使用 Win Form 的透明度键使其透明.. 图像加载到图片框中...
我的问题是你在身体轮廓上看到的白点......这是因为那个PNG的像素不是完全不透明或透明的,即半透明......所以透明度键无法制作背景表单在这些像素处是透明的……你会看到这些白点……
很好 有没有其他方法可以使表单透明,因为...
- transparency key 的行为总是这样,因为无论你做什么,在图像中的曲线处总会有这些半透明像素...
【问题讨论】:
-
呃,我想我以前也尝试过这样做,但运气不佳。 Winforms、透明度键和 PNG 不能很好地结合在一起。 WPF 怎么样?
-
那是什么...我在某处看到了缩写“WPF”
-
WPF 是一个完全不同的 GUI 框架,完全独立于 WinForms,与 WinForms 几乎没有共同之处。如果您已经熟悉 WinForms,则需要大量重新学习。
-
WPF = Windows Presentation Foundation:用于构建 Windows 客户端应用程序的新框架。如果您使用的是 .NET 3.5 及更高版本,您可能会查看 WPF,因为它支持窗口级别的透明度(您可以将 Form 的背景设置为透明,这会在 WinForms 中产生错误)。 WPF 广泛支持图形和非矩形形状的表单。检查链接:codeproject.com/KB/WPF/wpfpopup.aspx 如果您使用的是 .NET 3.5 或 4.0,您可能希望利用图形功能,因为您正在开发一个小部件样式的应用程序。希望对您有所帮助!
标签: c# winforms transparency photoshop