public static MessageBoxResult OK(string title, string msg, MessageBoxDisplayMode mode = MessageBoxDisplayMode.MaskHor, Window owner = null) { return(Application.Current.Dispatcher.Invoke(() => { MessageBox messageBox = new MessageBox(); messageBox.Opacity = 0; messageBox.Message = msg; messageBox.Title = title; messageBox.MessageBoxButton = MessageBoxButton.OK; messageBox.UpdateBoxStyle(mode); try { messageBox.Owner = owner == null? Application.Current.MainWindow : owner; } catch { } messageBox.Loaded += (s, e) => { DoubleAnimation aniOpacity = new DoubleAnimation(); aniOpacity.Duration = new Duration(TimeSpan.FromMilliseconds(600)); aniOpacity.To = 1; aniOpacity.EasingFunction = new QuarticEase() { EasingMode = EasingMode.EaseOut }; (s as MessageBox).BeginAnimation(MessageBox.OpacityProperty, aniOpacity); }; messageBox.ShowDialog(); return MessageBoxResult.OK; })); }
void UpdateBoxStyle(MessageBoxDisplayMode mode) { switch (mode) { case MessageBoxDisplayMode.Normal: this.Style = this.Resources["msgBoxStyleNormal"] as Style; break; case MessageBoxDisplayMode.MaskCenter: this.Style = this.Resources["msgBoxStyleFullScr"] as Style; break; case MessageBoxDisplayMode.MaskHor: this.Style = this.Resources["msgBoxStyleFullScrCross"] as Style; break; default: break; } }