2011-03-05 110 views
0

最近,在我妈妈的房子里,打了一个电话,来电显示器出现在她的电视(Comcast)的横幅上。当McAfee提出病毒警告时,我看到了类似的功能。这是一个带有公司标志,信息和一两个按钮的半透明弹出式窗口。如何在C#中弹出消息弹出窗口?

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

+0

你想在你的电脑上模仿这个,对吧?不在你的电视上?我只能想象这将是一种刺激,除非它是可访问性软件(如“聋哑人的某人的IMing你”消息)。 – Crisfole 2011-03-05 20:05:37

回答

0

如果您的应用程序在后台运行,您可以简单地弹出一个窗口并将其设置为最上方。

正是你做超越,什么是要依赖于什么类型的用户界面使用WPF可以更容易地建立一个透明的形式,如这里所描述(WPF /的WinForms):

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

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

Partial transparency with C# .NET 3.5 WinForms?

一对夫妇的事情,你会想你的弹出窗口,要做到:

  1. 禁用最小化/最大化/关闭按钮
  2. 禁用边框

只要把那些在您的形式,所以它看起来更好。

- Dan

+0

代码示例会很有帮助 – smartcaveman 2011-03-05 20:13:12

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中阅读。