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); }
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(); }); }
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(); }); }
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(); }); }