【问题标题】:C# WF Semi-transparent formC# WF 半透明表单
【发布时间】: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


【解决方案1】:

经过几天的研究,我没有找到任何适用于 Windows 10 的解决方案。看起来没有任何方法可以解决它。所以我最终在 WPF 中创建了这个项目,在那里它可以很容易地制作。

【讨论】:

    猜你喜欢
    • 2012-01-22
    • 1970-01-01
    • 2014-07-13
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    • 2018-12-03
    • 1970-01-01
    相关资源
    最近更新 更多