2013-07-17 3 views
1

В моем приложении wpf у меня есть 4 окна Просмотр. Я написал следующий код, который сводит к минимуму мое главное окно в системном трее при минимизации этого окна. Но я хочу этот эффект для всех окон моего приложения (т. Е. Всего приложения wpf). Когда я перехожу из одного окна в другое, он должен показывать значок в системном трее для этого окна. Нужно ли писать один и тот же код для всех остальных окон? Или любой другой способ достичь этого результата?Свернуть все приложения WPF в системный лоток в C#

Код, написанный для минимизации главного окна в системный трей,

public partial class MonthView : MetroWindow 
{ 

    public DateTime SelectedDate { get; set; } 

    public MonthView() 
    { 

      InitializeComponent(); 
      calMain.DisplayDate = DateTime.Today; 
      Globals._globalController = new AppController(); 
      Globals._globalController.appTaskManager.setupLocal(); 
      Globals._globalController.setMonthViewWindow(this); 

      Globals.ni = new NotifyIcon(); 
      Globals.ni.Icon = new System.Drawing.Icon(@"D:\TimeSheetIcon.ico"); 
      Globals.ni.Visible = true; 
      Globals.ni.Click += 
       delegate(object sender, EventArgs args) 
       { 
        this.Show(); 
        this.WindowState = WindowState.Normal; 
       }; 

    } 

    protected override void OnStateChanged(EventArgs e) 
    { 
     if (WindowState == System.Windows.WindowState.Minimized) 
     { 
      this.Hide(); 
      Globals.ni.BalloonTipTitle = "MonthView"; 
      Globals.ni.BalloonTipText = "This is main window"; 
      Globals.ni.Visible = true; 
      Globals.ni.ShowBalloonTip(500); 
      base.OnStateChanged(e); 
     } 
    } 
} 

NotifyIcon объявлены глобально в Globals.cs

public static class Globals 
{ 
    public static NotifyIcon ni; 
} 

ответ

0

Вы должны создать класс (скажем WindowBase), наследующий класс Window, а затем примените эту выше функциональность в этом новом классе WindowBase, а затем наследуйте все свои новые Windows из этого класса WindowBase. Надеюсь, это даст вам представление.

+0

Да. Стоит попробовать. – Dinesh