Merge pull request #98 from noctwolf/upstream-master
重构InternalShowDialog
This commit is contained in:
1 file changed
+15
-108
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Media;
|
using System.Media;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
@@ -14,6 +15,7 @@ namespace HandyControl.Controls
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 消息框
|
/// 消息框
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[SuppressMessage("ReSharper", "RedundantDelegateCreation")]
|
||||||
public sealed class MessageBox : Window
|
public sealed class MessageBox : Window
|
||||||
{
|
{
|
||||||
private MessageBoxResult _messageBoxResult = MessageBoxResult.Cancel;
|
private MessageBoxResult _messageBoxResult = MessageBoxResult.Cancel;
|
||||||
@@ -31,7 +33,7 @@ namespace HandyControl.Controls
|
|||||||
|
|
||||||
public string Message
|
public string Message
|
||||||
{
|
{
|
||||||
get => (string) GetValue(MessageProperty);
|
get => (string)GetValue(MessageProperty);
|
||||||
set => SetValue(MessageProperty, value);
|
set => SetValue(MessageProperty, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,7 +42,7 @@ namespace HandyControl.Controls
|
|||||||
|
|
||||||
public Geometry Image
|
public Geometry Image
|
||||||
{
|
{
|
||||||
get => (Geometry) GetValue(ImageProperty);
|
get => (Geometry)GetValue(ImageProperty);
|
||||||
set => SetValue(ImageProperty, value);
|
set => SetValue(ImageProperty, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,7 +51,7 @@ namespace HandyControl.Controls
|
|||||||
|
|
||||||
public Brush ImageBrush
|
public Brush ImageBrush
|
||||||
{
|
{
|
||||||
get => (Brush) GetValue(ImageBrushProperty);
|
get => (Brush)GetValue(ImageBrushProperty);
|
||||||
set => SetValue(ImageBrushProperty, value);
|
set => SetValue(ImageBrushProperty, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,7 +60,7 @@ namespace HandyControl.Controls
|
|||||||
|
|
||||||
public bool ShowImage
|
public bool ShowImage
|
||||||
{
|
{
|
||||||
get => (bool) GetValue(ShowImageProperty);
|
get => (bool)GetValue(ShowImageProperty);
|
||||||
set => SetValue(ShowImageProperty, value);
|
set => SetValue(ShowImageProperty, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,18 +141,7 @@ namespace HandyControl.Controls
|
|||||||
public static MessageBoxResult Success(string messageBoxText, string caption = null)
|
public static MessageBoxResult Success(string messageBoxText, string caption = null)
|
||||||
{
|
{
|
||||||
MessageBox messageBox = null;
|
MessageBox messageBox = null;
|
||||||
#if netle40
|
|
||||||
Application.Current.Dispatcher.Invoke(new Action(() =>
|
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);
|
messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.None, MessageBoxResult.OK);
|
||||||
SetButtonStatus(messageBox, MessageBoxButton.OK);
|
SetButtonStatus(messageBox, MessageBoxButton.OK);
|
||||||
@@ -159,8 +150,7 @@ namespace HandyControl.Controls
|
|||||||
messageBox.ImageBrush = ResourceHelper.GetResource<Brush>(ResourceToken.SuccessBrush);
|
messageBox.ImageBrush = ResourceHelper.GetResource<Brush>(ResourceToken.SuccessBrush);
|
||||||
SystemSounds.Asterisk.Play();
|
SystemSounds.Asterisk.Play();
|
||||||
messageBox.ShowDialog();
|
messageBox.ShowDialog();
|
||||||
});
|
}));
|
||||||
#endif
|
|
||||||
|
|
||||||
return messageBox._messageBoxResult;
|
return messageBox._messageBoxResult;
|
||||||
}
|
}
|
||||||
@@ -173,24 +163,14 @@ namespace HandyControl.Controls
|
|||||||
public static MessageBoxResult Info(string messageBoxText, string caption = null)
|
public static MessageBoxResult Info(string messageBoxText, string caption = null)
|
||||||
{
|
{
|
||||||
MessageBox messageBox = null;
|
MessageBox messageBox = null;
|
||||||
#if netle40
|
|
||||||
Application.Current.Dispatcher.Invoke(new Action(() =>
|
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);
|
messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK);
|
||||||
SetButtonStatus(messageBox, MessageBoxButton.OK);
|
SetButtonStatus(messageBox, MessageBoxButton.OK);
|
||||||
SetImage(messageBox, MessageBoxImage.Information);
|
SetImage(messageBox, MessageBoxImage.Information);
|
||||||
SystemSounds.Asterisk.Play();
|
SystemSounds.Asterisk.Play();
|
||||||
messageBox.ShowDialog();
|
messageBox.ShowDialog();
|
||||||
});
|
}));
|
||||||
#endif
|
|
||||||
|
|
||||||
return messageBox._messageBoxResult;
|
return messageBox._messageBoxResult;
|
||||||
}
|
}
|
||||||
@@ -203,24 +183,14 @@ namespace HandyControl.Controls
|
|||||||
public static MessageBoxResult Warning(string messageBoxText, string caption = null)
|
public static MessageBoxResult Warning(string messageBoxText, string caption = null)
|
||||||
{
|
{
|
||||||
MessageBox messageBox = null;
|
MessageBox messageBox = null;
|
||||||
#if netle40
|
|
||||||
Application.Current.Dispatcher.Invoke(new Action(() =>
|
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);
|
messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Warning, MessageBoxResult.OK);
|
||||||
SetButtonStatus(messageBox, MessageBoxButton.OK);
|
SetButtonStatus(messageBox, MessageBoxButton.OK);
|
||||||
SetImage(messageBox, MessageBoxImage.Warning);
|
SetImage(messageBox, MessageBoxImage.Warning);
|
||||||
SystemSounds.Asterisk.Play();
|
SystemSounds.Asterisk.Play();
|
||||||
messageBox.ShowDialog();
|
messageBox.ShowDialog();
|
||||||
});
|
}));
|
||||||
#endif
|
|
||||||
|
|
||||||
return messageBox._messageBoxResult;
|
return messageBox._messageBoxResult;
|
||||||
}
|
}
|
||||||
@@ -233,24 +203,14 @@ namespace HandyControl.Controls
|
|||||||
public static MessageBoxResult Error(string messageBoxText, string caption = null)
|
public static MessageBoxResult Error(string messageBoxText, string caption = null)
|
||||||
{
|
{
|
||||||
MessageBox messageBox = null;
|
MessageBox messageBox = null;
|
||||||
#if netle40
|
|
||||||
Application.Current.Dispatcher.Invoke(new Action(() =>
|
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);
|
messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK);
|
||||||
SetButtonStatus(messageBox, MessageBoxButton.OK);
|
SetButtonStatus(messageBox, MessageBoxButton.OK);
|
||||||
SetImage(messageBox, MessageBoxImage.Error);
|
SetImage(messageBox, MessageBoxImage.Error);
|
||||||
SystemSounds.Asterisk.Play();
|
SystemSounds.Asterisk.Play();
|
||||||
messageBox.ShowDialog();
|
messageBox.ShowDialog();
|
||||||
});
|
}));
|
||||||
#endif
|
|
||||||
|
|
||||||
return messageBox._messageBoxResult;
|
return messageBox._messageBoxResult;
|
||||||
}
|
}
|
||||||
@@ -263,18 +223,7 @@ namespace HandyControl.Controls
|
|||||||
public static MessageBoxResult Fatal(string messageBoxText, string caption = null)
|
public static MessageBoxResult Fatal(string messageBoxText, string caption = null)
|
||||||
{
|
{
|
||||||
MessageBox messageBox = null;
|
MessageBox messageBox = null;
|
||||||
#if netle40
|
|
||||||
Application.Current.Dispatcher.Invoke(new Action(() =>
|
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);
|
messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.None, MessageBoxResult.OK);
|
||||||
SetButtonStatus(messageBox, MessageBoxButton.OK);
|
SetButtonStatus(messageBox, MessageBoxButton.OK);
|
||||||
@@ -283,8 +232,7 @@ namespace HandyControl.Controls
|
|||||||
messageBox.ImageBrush = ResourceHelper.GetResource<Brush>(ResourceToken.PrimaryTextBrush);
|
messageBox.ImageBrush = ResourceHelper.GetResource<Brush>(ResourceToken.PrimaryTextBrush);
|
||||||
SystemSounds.Asterisk.Play();
|
SystemSounds.Asterisk.Play();
|
||||||
messageBox.ShowDialog();
|
messageBox.ShowDialog();
|
||||||
});
|
}));
|
||||||
#endif
|
|
||||||
|
|
||||||
return messageBox._messageBoxResult;
|
return messageBox._messageBoxResult;
|
||||||
}
|
}
|
||||||
@@ -297,24 +245,14 @@ namespace HandyControl.Controls
|
|||||||
public static MessageBoxResult Ask(string messageBoxText, string caption = null)
|
public static MessageBoxResult Ask(string messageBoxText, string caption = null)
|
||||||
{
|
{
|
||||||
MessageBox messageBox = null;
|
MessageBox messageBox = null;
|
||||||
#if netle40
|
|
||||||
Application.Current.Dispatcher.Invoke(new Action(() =>
|
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);
|
messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel);
|
||||||
SetButtonStatus(messageBox, MessageBoxButton.OKCancel);
|
SetButtonStatus(messageBox, MessageBoxButton.OKCancel);
|
||||||
SetImage(messageBox, MessageBoxImage.Question);
|
SetImage(messageBox, MessageBoxImage.Question);
|
||||||
SystemSounds.Asterisk.Play();
|
SystemSounds.Asterisk.Play();
|
||||||
messageBox.ShowDialog();
|
messageBox.ShowDialog();
|
||||||
});
|
}));
|
||||||
#endif
|
|
||||||
|
|
||||||
return messageBox._messageBoxResult;
|
return messageBox._messageBoxResult;
|
||||||
}
|
}
|
||||||
@@ -327,7 +265,6 @@ namespace HandyControl.Controls
|
|||||||
public static MessageBoxResult Show(MessageBoxInfo info)
|
public static MessageBoxResult Show(MessageBoxInfo info)
|
||||||
{
|
{
|
||||||
MessageBox messageBox = null;
|
MessageBox messageBox = null;
|
||||||
#if netle40
|
|
||||||
Application.Current.Dispatcher.Invoke(new Action(() =>
|
Application.Current.Dispatcher.Invoke(new Action(() =>
|
||||||
{
|
{
|
||||||
messageBox = CreateMessageBox(null, info.MessageBoxText, info.Caption, info.Button, MessageBoxImage.None, info.DefaultResult);
|
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);
|
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)
|
if (info.Style != null)
|
||||||
{
|
{
|
||||||
messageBox.Style = info.Style;
|
messageBox.Style = info.Style;
|
||||||
}
|
}
|
||||||
SystemSounds.Asterisk.Play();
|
SystemSounds.Asterisk.Play();
|
||||||
messageBox.ShowDialog();
|
messageBox.ShowDialog();
|
||||||
});
|
}));
|
||||||
#endif
|
|
||||||
|
|
||||||
return messageBox._messageBoxResult;
|
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)
|
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;
|
MessageBox messageBox = null;
|
||||||
#if netle40
|
|
||||||
Application.Current.Dispatcher.Invoke(new Action(() =>
|
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);
|
messageBox = CreateMessageBox(owner, messageBoxText, caption, button, icon, defaultResult);
|
||||||
SetButtonStatus(messageBox, button);
|
SetButtonStatus(messageBox, button);
|
||||||
SetImage(messageBox, icon);
|
SetImage(messageBox, icon);
|
||||||
SystemSounds.Asterisk.Play();
|
SystemSounds.Asterisk.Play();
|
||||||
messageBox.ShowDialog();
|
messageBox.ShowDialog();
|
||||||
});
|
}));
|
||||||
#endif
|
|
||||||
|
|
||||||
return messageBox._messageBoxResult;
|
return messageBox._messageBoxResult;
|
||||||
}
|
}
|
||||||
@@ -540,4 +447,4 @@ namespace HandyControl.Controls
|
|||||||
|| value == MessageBoxResult.Yes;
|
|| value == MessageBoxResult.Yes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user