private void btn_TestPopup_Click(object sender, RoutedEventArgs e)
 {
     var TrayIcon = ((Core)Application.Current).TrayIcon;
     var viewModel = new NotificationViewModel(((MainWindowViewModel)DataContext).TaskList[0]);
     var baloon = new NotificationView(viewModel);
     //TrayIcon.ShowBalloonTip("MyBaloon", "Yam", Hardcodet.Wpf.TaskbarNotification.BalloonIcon);
     TrayIcon.ShowCustomBalloon(baloon, System.Windows.Controls.Primitives.PopupAnimation.Slide, null);
 }
        /// <summary>
        /// Обрабатывает принятие оповещения
        /// </summary>
        public void AcceptNotification()
        {
            // Для начала закрываем окно оповещения.
            // Затем проверим наличие нового оповещения в очереди и, если оно там есть, то
            // отобразим его
            lock (_allWorkLocker)
            {
                _taskbarIcon.CloseBalloon();

                Task task;
                if (_notificationQueue.TryDequeue(out task))
                {
                    Notify(task);
                }
                else
                {
                    // Удалим объекты вью и вью-модели (для освобождения памяти)
                    _currentNotificationViewModel = null;
                    _currentNotificationView = null;

                    _isNotificationActive = false;
                }
            }
        }
        /// <summary>
        /// Непосредственно отображает оповещение
        /// </summary>
        /// <param name="task"></param>
        private void Notify(Task task)
        {
            // Отобжараем оповещение
            Application.Current.Dispatcher.Invoke(() =>
            {
                // Подготовим оповещение
                _currentNotificationViewModel = new NotificationViewModel(task);
                _currentNotificationView = new NotificationView(_currentNotificationViewModel);

                // Отобразим оповещение
                //_taskbarIcon.ShowCustomBalloon(
                //                _currentNotificationView,
                //                System.Windows.Controls.Primitives.PopupAnimation.Slide,
                //                5000);

                var bal = new FancyBalloon();
                _taskbarIcon.ShowCustomBalloon(bal, PopupAnimation.Slide, null);
            });
        }
 public NotificationView(NotificationViewModel viewModel)
 {
     InitializeComponent();
     DataContext = viewModel;
 }