在.NET中更改单个表单控件的不透明度

时间:2010-08-10 10:49:09

标签: .net winforms controls opacity

好的,所以我要做的是让两个图像框重叠,以便我可以对齐它们中的图像(根据用户输入)。问题是我不确定我是否可以调整单个控件的不透明度,所以我只能看到最顶层的控件。当然,我可以进行图像处理并将两个图像合并为一个图像(具有适当的透明度设置)但是在每个输入操作上执行此操作会有些昂贵,所以我认为在UI线程上执行此操作会便宜很多。

有什么建议吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

这在WinForms中是不可能的,透明效果对重叠控件不起作用。您可以做的最好是重叠表单,以便您可以使用Opacity和TransparencyKey属性。

更实用的方法是使用 one PictureBox来显示合成图像。使用ColorMatrix类可以轻松创建这样的图像。您可以在this thread中的答案中找到示例代码。

答案 1 :(得分:0)

正如@Kane所说,wpf对此可能更好。 只有Form控件支持Opacity作为winforms(see msdn)中的属性,但如果您将图像放在子表单中,您可能可以使用它(我是在这里真的猜测,没有试过这个。)并发挥他们的不透明性。

祝你好运