예제 #1
0
        public MainWindowView()
        {
            InitializeComponent();

            trayIcon         = new NotifyIcon();
            trayIcon.Visible = MainWindowViewModel.Instance.Settings.MinimizeToTray;

            // Wire up an event to watch for changes to the Minimize to Tray setting
            MainWindowViewModel.Instance.Settings.PropertyChanged += (s, e) =>
            {
                if (e.PropertyName == "MinimizeToTray")
                {
                    trayIcon.Visible = MainWindowViewModel.Instance.Settings.MinimizeToTray;
                }
            };

            var icon = new Icon(Application.GetResourceStream(new Uri("pack://application:,,,/Resources/TroveTools.ico")).Stream);

            trayIcon.Icon            = icon;
            trayIcon.BalloonTipIcon  = ToolTipIcon.Info;
            trayIcon.BalloonTipText  = Strings.MainWindowView_MinimizeBalloonTipText;
            trayIcon.BalloonTipTitle = Strings.MainWindowView_MinimizeBalloonTipTitle;
            trayIcon.Text            = Strings.MainWindowView_MinimizeBalloonTipTitle;

            tipAction = RestoreWindow;
            trayIcon.BalloonTipClicked += (s, e) => tipAction?.Invoke();
            trayIcon.MouseClick        += (s, e) => { if (e.Button == MouseButtons.Left)
                                                      {
                                                          RestoreWindow();
                                                      }
            };

            // Setup tray icon context menu
            var open = new ToolStripMenuItem(Strings.MainWindowView_OpenTroveTools, icon.ToBitmap());

            open.Font   = new Font(open.Font, System.Drawing.FontStyle.Bold);
            open.Click += (s, e) => RestoreWindow();

            var quitImage = System.Drawing.Image.FromStream(Application.GetResourceStream(new Uri("pack://application:,,,/Resources/glyphicons-208-remove.png")).Stream);
            var quit      = new ToolStripMenuItem(Strings.MainWindowView_QuitTroveTools, quitImage);

            quit.Click += QuitTroveTools;

            var menu = new ContextMenuStrip();

            menu.Items.AddRange(new ToolStripItem[] { open, new ToolStripSeparator(), quit });

            trayIcon.ContextMenuStrip = menu;
        }