private CustomMessageBox(MessageBoxPage page, string title) { InitializeComponent(); SizeToContent = SizeToContent.WidthAndHeight; frmContent.Content = page; MinHeight = page.MinHeight + 30; MinWidth = page.MinWidth; tblTitle.Text = title; btnMin.Visibility = Visibility.Collapsed; ResizeMode = ResizeMode.CanMinimize; WindowStartupLocation = WindowStartupLocation.CenterOwner; ShowInTaskbar = false; }
private static async Task <MessageBoxResult> _Show(string messageBoxText, string messageBoxTitle, MessageBoxButton messageBoxButton, MessageBoxImage messageBoxImage, MessageBoxResult messageBoxResult = MessageBoxResult.None, Window ownerWindow = null) { await Application.Current.Dispatcher.InvokeAsync(() => { var tick = DateTime.Now.Ticks; var page = new MessageBoxPage(messageBoxText, messageBoxButton, messageBoxImage, tick); switch (messageBoxButton) { case MessageBoxButton.OKCancel: page.btnOk.IsDefault = true; break; case MessageBoxButton.OK: page.btnOk.IsDefault = true; break; case MessageBoxButton.YesNoCancel: page.btnYes.IsDefault = true; break; case MessageBoxButton.YesNo: page.btnYes.IsDefault = true; break; } var window = new CustomMessageBox(page, messageBoxTitle) { WindowID = tick, Owner = ownerWindow }; if (messageBoxButton == MessageBoxButton.YesNo) { window.btnClose.IsEnabled = false; } window.ShowDialog(); return(window.ToReturn ?? DefaultReturn(messageBoxButton, messageBoxResult)); }); return(messageBoxResult); }