From 86349157b01eb0ef547a57b310dc3e6dd3df1b58 Mon Sep 17 00:00:00 2001 From: noctwolf Date: Sat, 15 Jun 2019 21:20:24 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=87=8D=E6=9E=84InternalShowDialog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controls/Window/MessageBox.cs | 151 ++++-------------- 1 file changed, 28 insertions(+), 123 deletions(-) diff --git a/src/Shared/HandyControl_Shared/Controls/Window/MessageBox.cs b/src/Shared/HandyControl_Shared/Controls/Window/MessageBox.cs index 4d688cd8..3cd7d144 100644 --- a/src/Shared/HandyControl_Shared/Controls/Window/MessageBox.cs +++ b/src/Shared/HandyControl_Shared/Controls/Window/MessageBox.cs @@ -31,7 +31,7 @@ namespace HandyControl.Controls public string Message { - get => (string) GetValue(MessageProperty); + get => (string)GetValue(MessageProperty); set => SetValue(MessageProperty, value); } @@ -40,7 +40,7 @@ namespace HandyControl.Controls public Geometry Image { - get => (Geometry) GetValue(ImageProperty); + get => (Geometry)GetValue(ImageProperty); set => SetValue(ImageProperty, value); } @@ -49,7 +49,7 @@ namespace HandyControl.Controls public Brush ImageBrush { - get => (Brush) GetValue(ImageBrushProperty); + get => (Brush)GetValue(ImageBrushProperty); set => SetValue(ImageBrushProperty, value); } @@ -58,7 +58,7 @@ namespace HandyControl.Controls public bool ShowImage { - get => (bool) GetValue(ShowImageProperty); + get => (bool)GetValue(ShowImageProperty); set => SetValue(ShowImageProperty, value); } @@ -131,6 +131,14 @@ namespace HandyControl.Controls } } + private void InternalShowDialog() + { +#if !netle40 + SystemSounds.Asterisk.Play(); +#endif + ShowDialog(); + } + /// /// 成功 /// @@ -139,18 +147,7 @@ namespace HandyControl.Controls public static MessageBoxResult Success(string messageBoxText, string caption = null) { MessageBox messageBox = null; -#if netle40 Application.Current.Dispatcher.Invoke(new Action(() => - { - messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.None, MessageBoxResult.OK); - SetButtonStatus(messageBox, MessageBoxButton.OK); - messageBox.ShowImage = true; - messageBox.Image = ResourceHelper.GetResource(ResourceToken.SuccessGeometry); - messageBox.ImageBrush = ResourceHelper.GetResource(ResourceToken.SuccessBrush); - messageBox.ShowDialog(); - })); -#else - Application.Current.Dispatcher.Invoke(() => { messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.None, MessageBoxResult.OK); SetButtonStatus(messageBox, MessageBoxButton.OK); @@ -158,10 +155,8 @@ namespace HandyControl.Controls messageBox.Image = ResourceHelper.GetResource(ResourceToken.SuccessGeometry); messageBox.ImageBrush = ResourceHelper.GetResource(ResourceToken.SuccessBrush); SystemSounds.Asterisk.Play(); - messageBox.ShowDialog(); - }); -#endif - + messageBox.InternalShowDialog(); + })); return messageBox._messageBoxResult; } @@ -173,25 +168,14 @@ namespace HandyControl.Controls public static MessageBoxResult Info(string messageBoxText, string caption = null) { MessageBox messageBox = null; -#if netle40 Application.Current.Dispatcher.Invoke(new Action(() => - { - messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK); - SetButtonStatus(messageBox, MessageBoxButton.OK); - SetImage(messageBox, MessageBoxImage.Information); - messageBox.ShowDialog(); - })); -#else - Application.Current.Dispatcher.Invoke(() => { messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK); SetButtonStatus(messageBox, MessageBoxButton.OK); SetImage(messageBox, MessageBoxImage.Information); SystemSounds.Asterisk.Play(); - messageBox.ShowDialog(); - }); -#endif - + messageBox.InternalShowDialog(); + })); return messageBox._messageBoxResult; } @@ -203,25 +187,14 @@ namespace HandyControl.Controls public static MessageBoxResult Warning(string messageBoxText, string caption = null) { MessageBox messageBox = null; -#if netle40 Application.Current.Dispatcher.Invoke(new Action(() => - { - messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Warning, MessageBoxResult.OK); - SetButtonStatus(messageBox, MessageBoxButton.OK); - SetImage(messageBox, MessageBoxImage.Warning); - messageBox.ShowDialog(); - })); -#else - Application.Current.Dispatcher.Invoke(() => { messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Warning, MessageBoxResult.OK); SetButtonStatus(messageBox, MessageBoxButton.OK); SetImage(messageBox, MessageBoxImage.Warning); SystemSounds.Asterisk.Play(); - messageBox.ShowDialog(); - }); -#endif - + messageBox.InternalShowDialog(); + })); return messageBox._messageBoxResult; } @@ -233,25 +206,14 @@ namespace HandyControl.Controls public static MessageBoxResult Error(string messageBoxText, string caption = null) { MessageBox messageBox = null; -#if netle40 Application.Current.Dispatcher.Invoke(new Action(() => - { - messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK); - SetButtonStatus(messageBox, MessageBoxButton.OK); - SetImage(messageBox, MessageBoxImage.Error); - messageBox.ShowDialog(); - })); -#else - Application.Current.Dispatcher.Invoke(() => { messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK); SetButtonStatus(messageBox, MessageBoxButton.OK); SetImage(messageBox, MessageBoxImage.Error); SystemSounds.Asterisk.Play(); - messageBox.ShowDialog(); - }); -#endif - + messageBox.InternalShowDialog(); + })); return messageBox._messageBoxResult; } @@ -263,18 +225,7 @@ namespace HandyControl.Controls public static MessageBoxResult Fatal(string messageBoxText, string caption = null) { MessageBox messageBox = null; -#if netle40 Application.Current.Dispatcher.Invoke(new Action(() => - { - messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.None, MessageBoxResult.OK); - SetButtonStatus(messageBox, MessageBoxButton.OK); - messageBox.ShowImage = true; - messageBox.Image = ResourceHelper.GetResource(ResourceToken.FatalGeometry); - messageBox.ImageBrush = ResourceHelper.GetResource(ResourceToken.PrimaryTextBrush); - messageBox.ShowDialog(); - })); -#else - Application.Current.Dispatcher.Invoke(() => { messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.None, MessageBoxResult.OK); SetButtonStatus(messageBox, MessageBoxButton.OK); @@ -282,10 +233,8 @@ namespace HandyControl.Controls messageBox.Image = ResourceHelper.GetResource(ResourceToken.FatalGeometry); messageBox.ImageBrush = ResourceHelper.GetResource(ResourceToken.PrimaryTextBrush); SystemSounds.Asterisk.Play(); - messageBox.ShowDialog(); - }); -#endif - + messageBox.InternalShowDialog(); + })); return messageBox._messageBoxResult; } @@ -297,25 +246,14 @@ namespace HandyControl.Controls public static MessageBoxResult Ask(string messageBoxText, string caption = null) { MessageBox messageBox = null; -#if netle40 Application.Current.Dispatcher.Invoke(new Action(() => - { - messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel); - SetButtonStatus(messageBox, MessageBoxButton.OKCancel); - SetImage(messageBox, MessageBoxImage.Question); - messageBox.ShowDialog(); - })); -#else - Application.Current.Dispatcher.Invoke(() => { messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel); SetButtonStatus(messageBox, MessageBoxButton.OKCancel); SetImage(messageBox, MessageBoxImage.Question); SystemSounds.Asterisk.Play(); - messageBox.ShowDialog(); - }); -#endif - + messageBox.InternalShowDialog(); + })); return messageBox._messageBoxResult; } @@ -327,7 +265,6 @@ namespace HandyControl.Controls public static MessageBoxResult Show(MessageBoxInfo info) { MessageBox messageBox = null; -#if netle40 Application.Current.Dispatcher.Invoke(new Action(() => { messageBox = CreateMessageBox(null, info.MessageBoxText, info.Caption, info.Button, MessageBoxImage.None, info.DefaultResult); @@ -340,34 +277,13 @@ namespace HandyControl.Controls messageBox.ImageBrush = ResourceHelper.GetResource(info.IconBrushKey); } - if (info.Style != null) - { - messageBox.Style = info.Style; - } - messageBox.ShowDialog(); - })); -#else - Application.Current.Dispatcher.Invoke(() => - { - messageBox = CreateMessageBox(null, info.MessageBoxText, info.Caption, info.Button, MessageBoxImage.None, info.DefaultResult); - SetButtonStatus(messageBox, info.Button); - - if (!string.IsNullOrEmpty(info.IconKey)) - { - messageBox.ShowImage = true; - messageBox.Image = ResourceHelper.GetResource(info.IconKey); - messageBox.ImageBrush = ResourceHelper.GetResource(info.IconBrushKey); - } - if (info.Style != null) { messageBox.Style = info.Style; } SystemSounds.Asterisk.Play(); - messageBox.ShowDialog(); - }); -#endif - + messageBox.InternalShowDialog(); + })); return messageBox._messageBoxResult; } @@ -398,25 +314,14 @@ namespace HandyControl.Controls public static MessageBoxResult Show(System.Windows.Window owner, string messageBoxText, string caption = null, MessageBoxButton button = MessageBoxButton.OK, MessageBoxImage icon = MessageBoxImage.None, MessageBoxResult defaultResult = MessageBoxResult.None) { MessageBox messageBox = null; -#if netle40 Application.Current.Dispatcher.Invoke(new Action(() => - { - messageBox = CreateMessageBox(owner, messageBoxText, caption, button, icon, defaultResult); - SetButtonStatus(messageBox, button); - SetImage(messageBox, icon); - messageBox.ShowDialog(); - })); -#else - Application.Current.Dispatcher.Invoke(() => { messageBox = CreateMessageBox(owner, messageBoxText, caption, button, icon, defaultResult); SetButtonStatus(messageBox, button); SetImage(messageBox, icon); SystemSounds.Asterisk.Play(); - messageBox.ShowDialog(); - }); -#endif - + messageBox.InternalShowDialog(); + })); return messageBox._messageBoxResult; } From 20b88b13664365a22745dbc15ed5c7ea13e2fe1f Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Sat, 15 Jun 2019 23:14:05 +0800 Subject: [PATCH 2/2] Update MessageBox.cs --- .../Controls/Window/MessageBox.cs | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/src/Shared/HandyControl_Shared/Controls/Window/MessageBox.cs b/src/Shared/HandyControl_Shared/Controls/Window/MessageBox.cs index 3cd7d144..f5d6a43e 100644 --- a/src/Shared/HandyControl_Shared/Controls/Window/MessageBox.cs +++ b/src/Shared/HandyControl_Shared/Controls/Window/MessageBox.cs @@ -1,5 +1,6 @@ using System; using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; using System.Media; using System.Text; using System.Windows; @@ -14,6 +15,7 @@ namespace HandyControl.Controls /// /// 消息框 /// + [SuppressMessage("ReSharper", "RedundantDelegateCreation")] public sealed class MessageBox : Window { private MessageBoxResult _messageBoxResult = MessageBoxResult.Cancel; @@ -131,14 +133,6 @@ namespace HandyControl.Controls } } - private void InternalShowDialog() - { -#if !netle40 - SystemSounds.Asterisk.Play(); -#endif - ShowDialog(); - } - /// /// 成功 /// @@ -155,8 +149,9 @@ namespace HandyControl.Controls messageBox.Image = ResourceHelper.GetResource(ResourceToken.SuccessGeometry); messageBox.ImageBrush = ResourceHelper.GetResource(ResourceToken.SuccessBrush); SystemSounds.Asterisk.Play(); - messageBox.InternalShowDialog(); + messageBox.ShowDialog(); })); + return messageBox._messageBoxResult; } @@ -174,8 +169,9 @@ namespace HandyControl.Controls SetButtonStatus(messageBox, MessageBoxButton.OK); SetImage(messageBox, MessageBoxImage.Information); SystemSounds.Asterisk.Play(); - messageBox.InternalShowDialog(); + messageBox.ShowDialog(); })); + return messageBox._messageBoxResult; } @@ -193,8 +189,9 @@ namespace HandyControl.Controls SetButtonStatus(messageBox, MessageBoxButton.OK); SetImage(messageBox, MessageBoxImage.Warning); SystemSounds.Asterisk.Play(); - messageBox.InternalShowDialog(); + messageBox.ShowDialog(); })); + return messageBox._messageBoxResult; } @@ -212,8 +209,9 @@ namespace HandyControl.Controls SetButtonStatus(messageBox, MessageBoxButton.OK); SetImage(messageBox, MessageBoxImage.Error); SystemSounds.Asterisk.Play(); - messageBox.InternalShowDialog(); + messageBox.ShowDialog(); })); + return messageBox._messageBoxResult; } @@ -233,8 +231,9 @@ namespace HandyControl.Controls messageBox.Image = ResourceHelper.GetResource(ResourceToken.FatalGeometry); messageBox.ImageBrush = ResourceHelper.GetResource(ResourceToken.PrimaryTextBrush); SystemSounds.Asterisk.Play(); - messageBox.InternalShowDialog(); + messageBox.ShowDialog(); })); + return messageBox._messageBoxResult; } @@ -252,8 +251,9 @@ namespace HandyControl.Controls SetButtonStatus(messageBox, MessageBoxButton.OKCancel); SetImage(messageBox, MessageBoxImage.Question); SystemSounds.Asterisk.Play(); - messageBox.InternalShowDialog(); + messageBox.ShowDialog(); })); + return messageBox._messageBoxResult; } @@ -282,8 +282,9 @@ namespace HandyControl.Controls messageBox.Style = info.Style; } SystemSounds.Asterisk.Play(); - messageBox.InternalShowDialog(); + messageBox.ShowDialog(); })); + return messageBox._messageBoxResult; } @@ -320,8 +321,9 @@ namespace HandyControl.Controls SetButtonStatus(messageBox, button); SetImage(messageBox, icon); SystemSounds.Asterisk.Play(); - messageBox.InternalShowDialog(); + messageBox.ShowDialog(); })); + return messageBox._messageBoxResult; } @@ -445,4 +447,4 @@ namespace HandyControl.Controls || value == MessageBoxResult.Yes; } } -} +} \ No newline at end of file