Merge pull request #98 from noctwolf/upstream-master

重构InternalShowDialog
This commit is contained in:
NaBian authored and GitHub committed 2019-06-15 23:14:52 +08:00
commit f3439a9dd0
1 file changed
+15 -108
@@ -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
/// <summary>
/// 消息框
/// </summary>
[SuppressMessage("ReSharper", "RedundantDelegateCreation")]
public sealed class MessageBox : Window
{
private MessageBoxResult _messageBoxResult = MessageBoxResult.Cancel;
@@ -31,7 +33,7 @@ namespace HandyControl.Controls
public string Message
{
get => (string) GetValue(MessageProperty);
get => (string)GetValue(MessageProperty);
set => SetValue(MessageProperty, value);
}
@@ -40,7 +42,7 @@ namespace HandyControl.Controls
public Geometry Image
{
get => (Geometry) GetValue(ImageProperty);
get => (Geometry)GetValue(ImageProperty);
set => SetValue(ImageProperty, value);
}
@@ -49,7 +51,7 @@ namespace HandyControl.Controls
public Brush ImageBrush
{
get => (Brush) GetValue(ImageBrushProperty);
get => (Brush)GetValue(ImageBrushProperty);
set => SetValue(ImageBrushProperty, value);
}
@@ -58,7 +60,7 @@ namespace HandyControl.Controls
public bool ShowImage
{
get => (bool) GetValue(ShowImageProperty);
get => (bool)GetValue(ShowImageProperty);
set => SetValue(ShowImageProperty, value);
}
@@ -139,18 +141,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<Geometry>(ResourceToken.SuccessGeometry);
messageBox.ImageBrush = ResourceHelper.GetResource<Brush>(ResourceToken.SuccessBrush);
messageBox.ShowDialog();
}));
#else
Application.Current.Dispatcher.Invoke(() =>
{
messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.None, MessageBoxResult.OK);
SetButtonStatus(messageBox, MessageBoxButton.OK);
@@ -159,8 +150,7 @@ namespace HandyControl.Controls
messageBox.ImageBrush = ResourceHelper.GetResource<Brush>(ResourceToken.SuccessBrush);
SystemSounds.Asterisk.Play();
messageBox.ShowDialog();
});
#endif
}));
return messageBox._messageBoxResult;
}
@@ -173,24 +163,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
}));
return messageBox._messageBoxResult;
}
@@ -203,24 +183,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
}));
return messageBox._messageBoxResult;
}
@@ -233,24 +203,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
}));
return messageBox._messageBoxResult;
}
@@ -263,18 +223,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<Geometry>(ResourceToken.FatalGeometry);
messageBox.ImageBrush = ResourceHelper.GetResource<Brush>(ResourceToken.PrimaryTextBrush);
messageBox.ShowDialog();
}));
#else
Application.Current.Dispatcher.Invoke(() =>
{
messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.None, MessageBoxResult.OK);
SetButtonStatus(messageBox, MessageBoxButton.OK);
@@ -283,8 +232,7 @@ namespace HandyControl.Controls
messageBox.ImageBrush = ResourceHelper.GetResource<Brush>(ResourceToken.PrimaryTextBrush);
SystemSounds.Asterisk.Play();
messageBox.ShowDialog();
});
#endif
}));
return messageBox._messageBoxResult;
}
@@ -297,24 +245,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
}));
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,33 +277,13 @@ namespace HandyControl.Controls
messageBox.ImageBrush = ResourceHelper.GetResource<Brush>(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<Geometry>(info.IconKey);
messageBox.ImageBrush = ResourceHelper.GetResource<Brush>(info.IconBrushKey);
}
if (info.Style != null)
{
messageBox.Style = info.Style;
}
SystemSounds.Asterisk.Play();
messageBox.ShowDialog();
});
#endif
}));
return messageBox._messageBoxResult;
}
@@ -398,24 +315,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
}));
return messageBox._messageBoxResult;
}
@@ -540,4 +447,4 @@ namespace HandyControl.Controls
|| value == MessageBoxResult.Yes;
}
}
}
}