让我们直截了当,用Windows Forms和C#实现Metro风格的消息框 实现很酷,但我在Windows XP上遇到半透明背景问题,使用方法:
this.BackColor = Color.FromArgb (0x46, 0x69, 0x69, 0x69);
这个模型在XP上的Windows 7和8上运行得很好,但是渲染也不会忽略参数Alpha。除此之外,根据系统模型主题,他也没有回应Alpha。
即使在搜索之后,我没有在本附件中找到真正完美的东西,我开发了一个基于其他示例的模型,在Windows XP,7和8上工作,背景是半透明的,独立于主题但不呈现消息形式内的控件只是忽略了所有内容。
希望你能给我一个帮助。
提前谢谢。
答案 0 :(得分:0)
只有顶级窗口(窗体)支持Winforms中的Alpha透明,但不支持控件。 如果你想在Winforms中使用半透明控件,你必须自己实现该功能。
以此帖为例: Winforms: Making a control transparent
修改强>
如果你想要一个透明/半透明的MessageBox,你必须自己创建它。只需继承Form
(支持透明度)并创建您想要的外观。然后你可以简单地设置'你的'MessageBox的不透明度:
myMessageBox.Opacity = .75;
如果您想要更好地控制控件的外观,您应该考虑使用WPF。这是一个似乎符合您需求的WPF控件: