不需要的透明度问题 [英] Unwanted Transparency Question

查看:59
本文介绍了不需要的透明度问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我一直在使用贝塞尔曲线编写一个像屏幕保护程序一样的小带状。

除了几个着色程序(如下面的代码段)之外,一切正常。 br $> b $ b

d1,d2,d3,d4代表曲线的起点,终点和控制点。

公式计算几个距离值并将它们存储在xp / yp变量中,然后将这些值用作rgb值。



Dim xp As Integer = Sqrt((d1.X - d4.X )^ 2 +(d1.Y - d4.Y)^ 2)

Dim yp As Integer = Sqrt((d2.X - d3.X)^ 2 +(d2.Y - d3。 Y)^ 2)

mypen.Color = Color.FromArgb(1,xp Mod 255,yp Mod 255,xp + yp Mod 255)



再次,代码工作正常并产生一些很好的效果。但是,将Alpha值设置为1将导致着色器偶尔产生透明色。即我的黑色背景后面的桌面或窗口将显示在曲线内。



使用alpha值可以解决问题,但会导致颜色变暗而不是颜色鲜艳生成的值为1.



我尝试更改表单透明度键并查找与键匹配的rgb值,然后将其更改为near值而不是这似乎工作。 (我可能在这里做错了什么)



所以任何人都有任何想法吗?





用于显示问题的图片:



https://dl.dropboxusercontent.com/u/47121409/umm.jpg [

推荐答案

您还期待什么? A值为1表示非常透明的颜色。阅读:要创建不透明的颜色,将alpha设置为255:

http://msdn.microsoft.com/en-us/library/at1k42eh%28v=vs.110%29.aspx [ ^ ]。



-SA
What else would you expect? The A value of 1 means very transparent color. Read this: "To create an opaque color, set alpha to 255":
http://msdn.microsoft.com/en-us/library/at1k42eh%28v=vs.110%29.aspx[^].

—SA


好的便士突然掉了下来:)



Me.AllowTransparency = False





虽然这又解决了这个问题。该程序还可以在桌面上的透明窗口中运行。所以我认为布尔的简单切换就可以了。似乎没有。第一次更改很好但是程序似乎忽略了任何进一步的切换。



尝试过:



Me.AllowTransparency =不是Me.AllowTransparency

和if / then语句和两者似乎做同样的事情。



仍然我猜我的问题已经回答。
Ok the penny suddenly dropped :)

Me.AllowTransparency = False


Though again this cures the problem. The program can also run in a transparent window over the desktop. So I thought a simple toggle of the boolean would do it. It seems not. First change is fine but then the program appears to ignore any further toggling.

have tried :

Me.AllowTransparency = Not Me.AllowTransparency
and if/then statements and both seem to do the same thing.

Still I guess my question is answered.


这篇关于不需要的透明度问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆