Mega Code Archive

 
Categories / C# / WPF
 

MailDispatcher and NotifyIcon

<Window x:Class="ActivationSample.MainWindow"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     Title="ActivationSample"     >   <Grid>     <ListBox Name="mailListBox" />   </Grid> </Window> //File:Window.xaml.cs using System; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Windows.Forms; using System.Windows.Threading; namespace ActivationSample {     public partial class MainWindow : Window     {         private bool isActive;         private MailDispatcher mailDispatcher = new MailDispatcher();         private NotifyIcon newMailNotifyIcon = new NotifyIcon();         public MainWindow()         {             InitializeComponent();             this.mailDispatcher.MailDispatched += mailDispatcher_MailDispatched;             this.mailDispatcher.Start();            // this.newMailNotifyIcon.Icon = ActivationSample.Properties.Resources.NewMailIcon;                         this.isActive = true;             this.newMailNotifyIcon.Visible = false;         }         public void AddMailItem(string data)         {             this.mailListBox.Items.Add(data);         }         void mailDispatcher_MailDispatched(object sender, EventArgs e)         {             ((MainWindow)this).AddMailItem(DateTime.Now.ToString());             if (!this.isActive && this.newMailNotifyIcon.Visible == false)             {                 this.newMailNotifyIcon.Visible = true;             }         } //        void App_Deactivated(object sender, EventArgs e)   //      {     //        this.isActive = false;       //  } //        void App_Exit(object sender, ExitEventArgs e)   //      {     //        this.mailDispatcher.Stop();       //  }             }     public class MailDispatcher     {         DispatcherTimer timer;         public event EventHandler MailDispatched;         public void Start()         {             this.timer = new DispatcherTimer();             timer.Tick += timer_Tick;             timer.IsEnabled = true;             timer.Interval = new TimeSpan(0, 0, 5);         }         public void Stop()         {             this.timer.IsEnabled = false;             this.timer.Tick -= timer_Tick;             this.timer = null;         }         void timer_Tick(object sender, EventArgs e)         {             if (MailDispatched != null) MailDispatched(this, EventArgs.Empty);         }     }     }