コード例 #1
0
        private void _n_Tick(object sender, EventArgs e)
        {
            Dispatcher.Invoke(() =>
            {
                NotificationContainer.LayoutTransform.BeginAnimation(ScaleTransform.ScaleYProperty,
                                                                     new DoubleAnimation(1, 0, TimeSpan.FromMilliseconds(200))
                {
                    EasingFunction = new QuadraticEase()
                });
                NotificationContent.BeginAnimation(OpacityProperty,
                                                   new DoubleAnimation(1, 0, TimeSpan.FromMilliseconds(150))
                {
                    EasingFunction = new QuadraticEase()
                });
            });
            _n.Stop();
            _busy = false;
            if (_queue.Count <= 0)
            {
                return;
            }
            var tuple = _queue.Dequeue();

            NotifyExtended(tuple.Item1, tuple.Item2, tuple.Item3);
        }
コード例 #2
0
        public void NotifyExtended(string title, string msg)
        {
            if (_busy)
            {
                _queue.Enqueue(new Tuple <string, string>(title, msg));
                return;
            }

            _busy = true;
            Dispatcher.Invoke(() =>
            {
                NotificationText.Text  = msg;
                NotificationTitle.Text = title;
                NotificationContainer.LayoutTransform.BeginAnimation(ScaleTransform.ScaleYProperty,
                                                                     new DoubleAnimation(0, 1, TimeSpan.FromMilliseconds(200))
                {
                    EasingFunction = new QuadraticEase()
                });
                NotificationContent.BeginAnimation(OpacityProperty,
                                                   new DoubleAnimation(0, 1, TimeSpan.FromMilliseconds(150))
                {
                    EasingFunction = new QuadraticEase()
                });
                NotificationTimeGovernor.LayoutTransform.BeginAnimation(ScaleTransform.ScaleXProperty, new DoubleAnimation(1, 0, TimeSpan.FromMilliseconds(_notificationDuration)));
                _n.Start();
            });
        }
コード例 #3
0
        public void NotifyExtended(string title, string msg, NotificationType type, uint timeMs = 4000)
        {
            if (_busy)
            {
                Dispatcher.Invoke(() =>
                {
                    if (msg != NotificationText.Text || title != NotificationTitle.Text)
                    {
                        _queue.Enqueue(new Tuple <string, string, NotificationType, uint>(title, msg, type, timeMs));
                    }
                });
                return;
            }

            _busy = true;
            Dispatcher.Invoke(() =>
            {
                NotificationText.Text  = msg;
                NotificationTitle.Text = title;
                switch (type)
                {
                case NotificationType.Normal:
                    NotificationColorBorder.Background = R.Brushes.ChatPartyBrush;    // System.Windows.Application.Current.FindResource("ChatPartyBrush") as SolidColorBrush;
                    break;

                case NotificationType.Success:
                    NotificationColorBorder.Background = R.Brushes.GreenBrush;     // System.Windows.Application.Current.FindResource("GreenBrush") as SolidColorBrush;
                    break;

                case NotificationType.Warning:
                    NotificationColorBorder.Background = R.Brushes.Tier4DungeonBrush;     // System.Windows.Application.Current.FindResource("Tier4DungeonBrush") as SolidColorBrush;
                    break;

                case NotificationType.Error:
                    NotificationColorBorder.Background = R.Brushes.HpBrush;     //System.Windows.Application.Current.FindResource("HpBrush") as SolidColorBrush;
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(type), type, null);
                }
                RefreshTopmost();
                NotificationContainer.RenderTransform.BeginAnimation(TranslateTransform.XProperty,
                                                                     new DoubleAnimation(50, 0, TimeSpan.FromMilliseconds(250))
                {
                    EasingFunction = new QuadraticEase()
                });
                NotificationContent.BeginAnimation(OpacityProperty,
                                                   new DoubleAnimation(0, 1, TimeSpan.FromMilliseconds(200))
                {
                    EasingFunction = new QuadraticEase()
                });

                NotificationTimeGovernor.LayoutTransform.BeginAnimation(ScaleTransform.ScaleXProperty, new DoubleAnimation(1, 0, TimeSpan.FromMilliseconds(timeMs)));
                _n.Interval = TimeSpan.FromMilliseconds(timeMs);
                _n.Start();
            });
        }
コード例 #4
0
        public void NotifyExtended(string title, string msg, NotificationType type)
        {
            if (_busy)
            {
                _queue.Enqueue(new Tuple <string, string, NotificationType>(title, msg, type));
                return;
            }

            _busy = true;
            Dispatcher.Invoke(() =>
            {
                NotificationText.Text  = msg;
                NotificationTitle.Text = title;
                switch (type)
                {
                case NotificationType.Normal:
                    NotificationColorBorder.Background = App.Current.FindResource("Colors.Chat.Party") as SolidColorBrush;
                    break;

                case NotificationType.Success:
                    NotificationColorBorder.Background = App.Current.FindResource("GreenColor") as SolidColorBrush;
                    break;

                case NotificationType.Warning:
                    NotificationColorBorder.Background = App.Current.FindResource("Tier4DungeonColor") as SolidColorBrush;
                    break;

                case NotificationType.Error:
                    NotificationColorBorder.Background = App.Current.FindResource("HpColor") as SolidColorBrush;
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(type), type, null);
                }
                NotificationContainer.LayoutTransform.BeginAnimation(ScaleTransform.ScaleYProperty,
                                                                     new DoubleAnimation(0, 1, TimeSpan.FromMilliseconds(200))
                {
                    EasingFunction = new QuadraticEase()
                });
                NotificationContent.BeginAnimation(OpacityProperty,
                                                   new DoubleAnimation(0, 1, TimeSpan.FromMilliseconds(150))
                {
                    EasingFunction = new QuadraticEase()
                });
                NotificationTimeGovernor.LayoutTransform.BeginAnimation(ScaleTransform.ScaleXProperty, new DoubleAnimation(1, 0, TimeSpan.FromMilliseconds(_notificationDuration)));
                _n.Start();
            });
        }