Clownish Carnage
Clownish Carnage

Reputation: 109

How to bring up a message popup in C#?

Most recently, while at my mom's house, a phone call came in and the caller ID popped up in a banner on her TV (Comcast). I've seen a similar functionality when the McAfee brings up a virus warning. It was a translucent popup window with the company logo, message and a button or two.

I'd like to mimic this behavior (via C#). This will event driven. My experience in C# is pretty limited, so I'm still feeling out the different libraries. Are there any ideas on where I should start?

Upvotes: 0

Views: 2153

Answers (2)

kyrylomyr
kyrylomyr

Reputation: 12652

I recommended to use WPF. Create new window, that will popup and set next properties:

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

Background property will set color of window.

Place on window any controls what you need. Create this window and show when some event happens:

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

To place your window in bottom-right corner, as all popups, use next code in windows Loaded event:

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

How to make animation of window movement you can read in other questions.

Upvotes: 2

debracey
debracey

Reputation: 6607

If your app is running in the background, you can simply pop up a window and set it to topmost.

Exactly what you do beyond that is going to depend on what type of UI are using (WPF/WinForms.) WPF makes it easier to build a transparent form, as described here:

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

Transparency in WinForms is a little bit harder, but there are some posts about it:

Partial transparency with C# .NET 3.5 WinForms?

A couple of things you will want to do with your pop-up window:

  1. Disable the minimize/maximize/close buttons
  2. Disable the borders

Just put those in your form so it looks better.

-- Dan

Upvotes: 0

Related Questions