如何在C#中弹出一个消息弹出窗口?

时间:2011-03-05 19:56:59

标签: c# popup message

最近,在我母亲的家里,一个电话进来,来电显示在她的电视(康卡斯特)的横幅上。当迈克菲提出病毒警告时,我已经看到了类似的功能。这是一个半透明的弹出窗口,带有公司徽标,信息和一两个按钮。

我想模仿这种行为(通过C#)。这将是事件驱动的。我在C#中的经验非常有限,所以我仍然感觉不同的库。关于我应该从哪里开始有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我建议使用WPF。创建新窗口,弹出并设置下一个属性:

WindowStyle="None"
AllowsTransparency="True"
Opacity="0.5" //50% transparent
Topmost="True"

Background属性将设置窗口的颜色。

将任何控件放在窗口上。 创建此窗口并显示某些事件发生的时间:

YourWindow popup = new YourWindow(/*possible args for message on popup, for example*/);
popup.Show();

要将窗口放在右下角,与所有弹出窗口一样,请使用windows Loaded事件中的下一个代码:

this.Left = SystemParameters.WorkArea.Width - this.Width;
this.Top = SystemParameters.WorkArea.Height - this.Height;

如何制作可在other questions中阅读的窗口移动动画。

答案 1 :(得分:0)

如果您的应用在后台运行,您只需弹出一个窗口并将其设置为最顶层。

除此之外你所做的正是取决于使用什么类型的UI(WPF / WinForms。)WPF使得构建透明表单变得更容易,如下所述:

http://blogs.interknowlogy.com/2007/06/20/transparent-windows-in-wpf-2/

WinForms的透明度有点难,但有一些帖子关于它:

Partial transparency with C# .NET 3.5 WinForms?

您想要在弹出窗口中执行以下操作:

  1. 禁用最小化/最大化/关闭按钮
  2. 禁用边框
  3. 只需将它们放在您的表单中,以便它看起来更好。

    - 丹