【发布时间】:2017-03-27 05:43:39
【问题描述】:
我想在 WF 中创建具有半透明背景的桌面无边框小部件。像这样:
但现在没有运气。我所能实现的就是使用
实现全背景透明度this.BackColor = Color.Black;
this.TransparencyKey = this.BackColor;
或整个表格
this.Opacity = .4;
我也花了一些时间将 TransparencyKey 与 BackgroundImage 结合起来,但结果只是纯黑色背景。
完全绝望我创建了两个表单,一个带有文本完全透明,第二个带有不透明度,但在移动过程中我无法将第一个窗口保持在上方,因此文本变暗了。
是否有可能在 WF 中进行此操作,或者我需要寻找 QT 或其他窗口库。
【问题讨论】:
-
您可以使用分层窗口。例如看看Windows Form Transparent Background Image
-
您通常需要一个包含两个窗口的三明治。底部使用 Opacity,顶部使用 TransparencyKey。但一般来说,在不可预测的背景上显示文本是一个非常糟糕的主意。标准的抗锯齿效果不再正常工作,并且不再将字母形状混合到背景中。它们变得非常明显,文本看起来很丑。唯一正确的方法是使用 Graphics.CopyFromScreen() 创建屏幕截图,使用 alpha
-
汉斯我做了三明治,字体看起来不错,但是当背景透明时,您可以单击窗口并选择下面的窗口,在我的情况下,它将背景层带到顶部,没有暗淡的文字。
标签: winforms transparency