You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
4.5 KiB
153 lines
4.5 KiB
|
|
using System.Windows; |
|
using System.Windows.Controls; |
|
using System.Windows.Input; |
|
using System.Windows.Media; |
|
using SparkClient.Model.Helper; |
|
|
|
namespace SparkClient.Views.Dialog; |
|
|
|
public partial class MessageBox : Window |
|
{ |
|
public MessageBox() |
|
{ |
|
InitializeComponent(); |
|
WindowStartupLocation = WindowStartupLocation.CenterScreen; |
|
|
|
} |
|
private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) |
|
{ |
|
if (e.ButtonState == MouseButtonState.Pressed) |
|
{ |
|
this.DragMove(); |
|
} |
|
} |
|
|
|
private int _showType = -1; |
|
private MessageBoxResult _result = MessageBoxResult.None; |
|
public void Show(String message, String btnStr = "") |
|
{ |
|
BorderInput.Visibility = Visibility.Hidden; |
|
Grid.SetRow(GridButtons, 2); |
|
CancelButton.Visibility = Visibility.Hidden; |
|
Grid.SetColumn(ConfirmButton, 2); |
|
TextBlockCenterBox.Text = message; |
|
System.Media.SystemSounds.Asterisk.Play(); |
|
_showType = 0; |
|
this.Height = 200; |
|
if (!string.IsNullOrWhiteSpace(btnStr)) |
|
{ |
|
ConfirmButtonText.Text = btnStr; |
|
} |
|
else |
|
{ |
|
ConfirmButtonText.Text = MultilingualHelper.getString("DialogConfirmDefaultTitle"); |
|
} |
|
this.ShowDialog(); |
|
|
|
} |
|
public MessageBoxResult ShowAsk(String message, String confirmButtonTitle = "", String cancelButtonTitle ="") |
|
{ |
|
BorderInput.Visibility = Visibility.Hidden; |
|
Grid.SetRow(GridButtons, 2); |
|
_showType = 1; |
|
this.Height = 250; |
|
System.Media.SystemSounds.Asterisk.Play(); |
|
TextBlockCenterBox.Text = message; |
|
if (!string.IsNullOrWhiteSpace(confirmButtonTitle) && !string.IsNullOrWhiteSpace(cancelButtonTitle)) |
|
{ |
|
ConfirmButtonText.Text = confirmButtonTitle; |
|
CancelButtonText.Text = cancelButtonTitle; |
|
} |
|
else |
|
{ |
|
ConfirmButtonText.Text = MultilingualHelper.getString("DialogConfirmDefaultTitle"); |
|
CancelButtonText.Text = MultilingualHelper.getString("DialogCancelDefaultTitle"); |
|
} |
|
this.ShowDialog(); |
|
|
|
return _result; |
|
} |
|
// |
|
public MessageBoxResult ShowInput(String message, out String inputStr , String confirmButtonTitle = "", String cancelButtonTitle ="", bool EnterConfirm = true) |
|
{ |
|
_showType = 2; |
|
this.Height = 300; |
|
TextBlockCenterBox.Text = message; |
|
TextBoxInput.Focus(); |
|
if (EnterConfirm) |
|
{ |
|
TextBoxInput.KeyDown += TextBoxInput_OnKeyDown; |
|
} |
|
|
|
if (!string.IsNullOrWhiteSpace(confirmButtonTitle) && !string.IsNullOrWhiteSpace(cancelButtonTitle)) |
|
{ |
|
ConfirmButtonText.Text = confirmButtonTitle; |
|
CancelButtonText.Text = cancelButtonTitle; |
|
} |
|
else |
|
{ |
|
ConfirmButtonText.Text = MultilingualHelper.getString("DialogConfirmDefaultTitle"); |
|
CancelButtonText.Text = MultilingualHelper.getString("DialogCancelDefaultTitle"); |
|
} |
|
this.ShowDialog(); |
|
|
|
inputStr = TextBoxInput.Text; |
|
return _result; |
|
} |
|
private void CloseButton_OnClick(object sender, RoutedEventArgs e) |
|
{ |
|
_result = MessageBoxResult.None; |
|
this.Close(); |
|
} |
|
|
|
private void ConfirmButton_OnClick(object sender, RoutedEventArgs e) |
|
{ |
|
if (_showType == 0) |
|
{ |
|
this.Close(); |
|
}else if (_showType == 1) |
|
{ |
|
_result = MessageBoxResult.OK; |
|
this.Close(); |
|
}else if (_showType == 2) |
|
{ |
|
if (string.IsNullOrWhiteSpace(TextBoxInput.Text)) |
|
{ |
|
BorderInput.BorderBrush = Brushes.Red; |
|
return; |
|
} |
|
else |
|
{ |
|
_result = MessageBoxResult.OK; |
|
this.Close(); |
|
} |
|
} |
|
} |
|
|
|
private void CancelButton_OnClick(object sender, RoutedEventArgs e) |
|
{ |
|
_result = MessageBoxResult.Cancel; |
|
this.Close(); |
|
} |
|
|
|
private void TextBlockCenterBox_OnSizeChanged(object sender, SizeChangedEventArgs e) |
|
{ |
|
double singleLineHeight = TextBlockCenterBox.FontSize * 1.4; |
|
|
|
if (TextBlockCenterBox.ActualHeight > singleLineHeight) |
|
{ |
|
// 发生换行 |
|
this.Height += 40; |
|
} |
|
|
|
} |
|
|
|
private void TextBoxInput_OnKeyDown(object sender, KeyEventArgs e) |
|
{ |
|
if (e.Key == Key.Enter) // 检测是否按下回车键 |
|
{ |
|
ConfirmButton_OnClick(sender, e); // 调用按钮的点击事件 |
|
} |
|
} |
|
} |