更改 .NET 中单个表单控件的不透明度
Posted
技术标签:
【中文标题】更改 .NET 中单个表单控件的不透明度【英文标题】:Changing the opacity of individual form controls in .NET 【发布时间】:2011-03-27 18:18:21 【问题描述】:好的,所以我要做的是让两个图像框重叠,以便我可以对齐其中的图像(基于用户输入)。问题是我不确定是否可以调整单个控件的不透明度,所以我只能看到最顶层的控件。当然,我可以进行图像处理并将两个图像组合成一个图像(使用适当的透明度设置),但是在每个输入操作上这样做会有点贵,所以我认为在 UI 线程上这样做会便宜很多。
有什么建议吗?提前谢谢你。
【问题讨论】:
我很确定您可以在 WPF 的控制级别而不是在 WinForms 中实现透明度 - 我很想听听其他人的意见。 【参考方案1】:这在 WinForms 中是不可能的,透明效果不适用于重叠控件。您可以做的最好的事情是重叠表单,这样您就可以使用 Opacity 和 TransparencyKey 属性。
更实用的方法是使用 one PictureBox,您可以在其中显示合成图像。使用 ColorMatrix 类很容易创建这样的图像。您可以在我的回答中找到示例代码 this thread。
【讨论】:
【参考方案2】:正如@Kane 所说,wpf 可能更适合这个。
只有Form
控件支持Opacity
作为winforms 中的属性(see msdn),但是如果您将图像放在子表单中,您可能会逃脱它(我真的在这里推测,没有' t 试过这个。)并玩弄它们的不透明度。
祝你好运
【讨论】:
以上是关于更改 .NET 中单个表单控件的不透明度的主要内容,如果未能解决你的问题,请参考以下文章