Metro风格XP,W7和W8中的消息框

时间:2013-12-15 20:50:16

标签: c# winforms

让我们直截了当,用Windows Forms和C#实现Metro风格的消息框 实现很酷,但我在Windows XP上遇到半透明背景问题,使用方法:

this.BackColor = Color.FromArgb (0x46, 0x69, 0x69, 0x69);

这个模型在XP上的Windows 7和8上运行得很好,但是渲染也不会忽略参数Alpha。除此之外,根据系统模型主题,他也没有回应Alpha。

即使在搜索之后,我没有在本附件中找到真正完美的东西,我开发了一个基于其他示例的模型,在Windows XP,7和8上工作,背景是半透明的,独立于主题但不呈现消息形式内的控件只是忽略了所有内容。

希望你能给我一个帮助。

提前谢谢。

Download Examples

1 个答案:

答案 0 :(得分:0)

只有顶级窗口(窗体)支持Winforms中的Alpha透明,但不支持控件。 如果你想在Winforms中使用半透明控件,你必须自己实现该功能。

以此帖为例: Winforms: Making a control transparent

修改 如果你想要一个透明/半透明的MessageBox,你必须自己创建它。只需继承Form(支持透明度)并创建您想要的外观。然后你可以简单地设置'你的'MessageBox的不透明度:

myMessageBox.Opacity = .75;

如果您想要更好地控制控件的外观,您应该考虑使用WPF。这是一个似乎符合您需求的WPF控件:

All-Purpose Message Box in WPF