gpt4 book ai didi

c# - 标签透明底色

转载 作者:行者123 更新时间:2023-11-30 18:22:02 29 4
gpt4 key购买 nike

我正在制作一个简单的表单 (C#) 并通过 transparencyKeyBackColor 将其设置为透明,使其等于 White。但是我在 LabelsGroupBoxesButtons 中的文本仍然有一点白色背景(设置 BackColor 等于到透明)。

结果如下:

我想让白色消失。看起来像这个片段 in 5:07

最佳答案

如果您想要消除锯齿,您将无法通过 TransparencyKey 获得它,这几乎是定义上的。 TransparencyKey 选择一种单一 颜色,并且该颜色的任何像素都变得完全透明。抗锯齿使用各种阴影来模拟平滑的边缘;这些阴影与您要设置为透明的单一颜色不匹配,因此这些像素将是不透明的,这正是我们在您的屏幕截图中看到的。

您需要使用 Windows 所说的“分层窗口”。有两种分层窗口;有一种使用 TransparencyKey(WinForms 支持,但不适合您的需要),还有一种让您为窗口的每个单独像素指定透明度值(看起来 WinForms 不支持开箱即用).

我的建议是使用 WPF 而不是 WinForms。WinForms 是一项古老的技术,确实不适合您要在此处创建的那种 UI 效果。它甚至不能很好地支持表单的半透明控件,更不用说表单本身基于其内容的每像素 alpha 了。

WPF 可以开箱即用地实现每像素透明度。将窗口的 WindowStyle 设置为 None 并将 AllowsTransparency 设置为 true,然后您就可以使用所有想要的透明效果.将窗口的背景颜色设置为 Transparent(如果您希望点击空白区域仍会转到您的窗口)或 {x:None}(如果您希望点击空白区域去你下面的 window )或半透明画笔;层叠半透明控件或 ARGB 位图;这一切看起来都很棒。

如果您出于某种原因真的想使用 WinForms,我猜您将有很多的工作要做。我建议使用谷歌搜索“WinForms 分层窗口”并复习 P/Invoke。

关于c# - 标签透明底色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34540678/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com