Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用透明键时标签上的边框_C#_Winforms - Fatal编程技术网

C# 使用透明键时标签上的边框

C# 使用透明键时标签上的边框,c#,winforms,C#,Winforms,我有一个winform(带有透明键)使其透明。但是当我添加一个标签时,标签周围有一个“fushia”边框。我知道这是因为控件没有“设置”背景。但有没有办法消除这一“边界” 表单设置为背景紫红色(透明键紫红色),标签设置为透明。试着用同样的结果把它涂到面板上 我错过了什么 看起来怎么样, 看起来像是抗锯齿人工制品 你可以试着改变 e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; 到 或者

我有一个winform(带有透明键)使其透明。但是当我添加一个标签时,标签周围有一个“fushia”边框。我知道这是因为控件没有“设置”背景。但有没有办法消除这一“边界”

表单设置为背景紫红色(透明键紫红色),标签设置为透明。试着用同样的结果把它涂到面板上

我错过了什么

看起来怎么样,


看起来像是抗锯齿人工制品

你可以试着改变

e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;

或者,可以完全禁用抗锯齿:

e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None;
编辑:我已将此内容从评论中删除,因为它可能会帮助一些人:

这里有一点关于AA人工制品的额外信息


AA将始终创建插值的像素,这将始终导致像素在某种程度上缺少透明度关键点颜色

显然,它们只有在不使用AA的情况下才会消失;但是,如果真的需要一些平滑,这个小技巧可能有助于改善结果:

通常,
TransparencyKey
是用一种粗糙的颜色完成的,比如
Fuchsia
HotPink
。它们很少使用,所以它们不太可能切割孔,但当它们通过半透明的AA像素时,它们是令人讨厌的。如果你使用一种不那么刺激的颜色这种效果会变得不显眼

您只需要确保您没有在其他地方使用它。通过
color选择颜色。从argb(255,r,g,b)
选择3个独特的值,这些值在其他地方不会使用,但与前景和更重要的背景混合在一起。饱和度非常低,根据您的图形,中等亮度可能会有所帮助

黑色
或中性灰色即使混合得很好也不是好的选择,因为它们经常被使用。但是,如果选择像ARGB(255、7、11、5)这样几乎是黑色的东西,则也有很好的机会混合,而不必在图形中使用,也不必在输出中切割孔


最好的结果是当你可以使用一些接近背景色的东西。如果你看不到它,这个技巧通常会失败,不过..

我假设这是一个Windows窗体应用程序。你不应该让我们假设。您应该添加[WinForms]标记。很好。好奇:TextRenderingHint是否足够,或者您是否必须设置SmoothingMode?另外:如果你高兴,请接受答案!是的,仅仅改变文本渲染就足够了。但我在尝试为标签添加边框时,遇到了另一个问题。一旦我禁用AA,它就会工作,但一旦我再次打开它,我就会再次得到这个背景。不确定您是否知道如何在关闭AA时修复此问题,而不会遭受真正糟糕的质量。*使用当前代码更新AA将始终创建插值像素。这将始终导致像素在某种程度上错过了traparency关键点颜色。恐怕没办法,好吧。有办法绕过它吗?让它成为位图或者使用OpenGL?尝试将其标记为已接受,但它一直反向。好的,谢谢您的帮助:)刚刚尝试使用黑色,它的效果是缩进的(但我需要找到更好的颜色)。我会尝试解决这个问题,但以前从未遇到过这个“错误”:P
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixel;
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None;