2011-03-05 121 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中閱讀。