GDI +中的Blanket Alpha组件

时间:2009-05-11 12:35:24

标签: .net winforms graphics gdi+ alphablending

有没有办法设置影响所有后续GDI / GDI +调用的Alpha值?换句话说,我希望为Graphics对象上的所有调用设置透明度。

(我正在寻找类似于*Transform函数如何影响它们被调用的Graphics对象的东西)

1 个答案:

答案 0 :(得分:1)

除非有一些我不知道的事情,否则GDI无法完成此任务。您是否正在寻找某种方法来更改GDI上下文中绘制中使用的所有颜色的相对alpha值?我不认为这样的事情存在。

更好的想法可能是将颜色缓存在您自己的自定义存储库中,然后当您想要设置全局(或范围范围)的Alpha值时,可以使用它来操纵这些颜色。显然,如果我有更多的信息,我可能会想出一个更适合您的环境的解决方案,但这就是我能根据问题中提供的内容提供的所有信息。

修改

阅读完评论后,我的建议是将您的绘画代码转换为一个函数,该函数采用Graphics对象,位置/大小(以及其他任何合适的,如果不是这样的话)和透明浮动(范围从0 - 1.0)。然后,您可以根据提供的透明度值在函数中创建颜色。