Dreamine.UI.Wpf.Controls
1.0.1
Dreamine.UI.Wpf.Controls 사용자 인터페이스 기능과 구성 요소를 제공합니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
DreamineMessageBox.cs
이 파일의 문서화 페이지로 가기
1
using
System.Windows;
2
3
namespace
Dreamine.UI.Wpf.Controls.MessageBox
4
{
13
public
static
class
DreamineMessageBox
14
{
23
private
static
class
State
24
{
33
private
static
bool
_isOpen
;
42
private
static
string
?
_lastTitle
;
51
private
static
string
?
_lastMessage
;
60
private
static
MessageBoxImage
_lastIcon
;
69
private
static
MessageBoxButton
_lastButtons
;
70
79
public
static
bool
IsOpen
80
{
81
get
=>
_isOpen
;
82
set
=>
_isOpen
= value;
83
}
84
93
public
static
string
?
LastTitle
94
{
95
get
=>
_lastTitle
;
96
set
=>
_lastTitle
= value;
97
}
98
107
public
static
string
?
LastMessage
108
{
109
get
=>
_lastMessage
;
110
set
=>
_lastMessage
= value;
111
}
112
121
public
static
MessageBoxImage
LastIcon
122
{
123
get
=>
_lastIcon
;
124
set
=>
_lastIcon
= value;
125
}
126
135
public
static
MessageBoxButton
LastButtons
136
{
137
get
=>
_lastButtons
;
138
set
=>
_lastButtons
= value;
139
}
140
189
public
static
bool
IsSame
(
string
title,
string
message, MessageBoxImage icon, MessageBoxButton buttons) =>
190
IsOpen
&&
191
LastTitle
== title &&
192
LastMessage
== message &&
193
LastIcon
== icon &&
194
LastButtons
== buttons;
195
}
196
221
private
static
Window?
GetActiveWindow
()
222
{
223
return
Application.Current.Windows
224
.OfType<Window>()
225
.FirstOrDefault(w => w.IsActive);
226
}
227
236
private
static
object
_lock
=
new
object();
237
326
public
static
MessageBoxResult
Show
(
327
string
message,
328
string
title =
"Information"
,
329
MessageBoxButton buttons = MessageBoxButton.OK,
330
MessageBoxImage icon = MessageBoxImage.None,
331
MessageBoxResult autoClick = MessageBoxResult.None,
int
autoClickDelaySeconds = 0,
int
enableDelaySeconds = 0)
332
{
333
return
Application.Current.Dispatcher.Invoke(() =>
334
{
335
var msgBox =
new
DreamineMessageBoxWindow
(title, message, icon, buttons, autoClick, autoClickDelaySeconds, enableDelaySeconds)
336
{
337
Owner =
GetActiveWindow
()
338
};
339
msgBox.ShowDialog();
340
return
msgBox.Result;
341
});
342
}
343
432
public
static
void
ShowAsync
(
string
message,
string
title =
"Information"
,
433
MessageBoxButton buttons = MessageBoxButton.OK,
434
MessageBoxImage icon = MessageBoxImage.None,
435
Action<MessageBoxResult>? callback =
null
,
436
MessageBoxResult autoClick = MessageBoxResult.None,
int
autoClickDelaySeconds = 0,
int
enableDelaySeconds = 0)
437
{
438
if
(
State
.
IsSame
(title, message, icon, buttons))
439
return
;
440
441
State.IsOpen
=
true
;
442
State.LastTitle
= title;
443
State.LastMessage
= message;
444
State.LastIcon
= icon;
445
State.LastButtons
= buttons;
446
447
Application.Current.Dispatcher.BeginInvoke(() =>
448
{
449
try
450
{
451
var msgBox =
new
DreamineMessageBoxWindow
(title, message, icon, buttons, autoClick, autoClickDelaySeconds, enableDelaySeconds)
452
{
453
Owner =
GetActiveWindow
()
454
};
455
msgBox.ShowDialog();
456
callback?.Invoke(msgBox.Result);
457
}
458
finally
459
{
460
State.IsOpen
=
false
;
461
State.LastTitle
=
null
;
462
State.LastMessage
=
null
;
463
}
464
});
465
}
466
}
467
}
Dreamine.UI.Wpf.Controls.MessageBox
Definition
DreamineMessageBox.cs:4
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox
Definition
DreamineMessageBox.cs:14
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.GetActiveWindow
static ? Window GetActiveWindow()
Definition
DreamineMessageBox.cs:221
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.ShowAsync
static void ShowAsync(string message, string title="Information", MessageBoxButton buttons=MessageBoxButton.OK, MessageBoxImage icon=MessageBoxImage.None, Action< MessageBoxResult >? callback=null, MessageBoxResult autoClick=MessageBoxResult.None, int autoClickDelaySeconds=0, int enableDelaySeconds=0)
Definition
DreamineMessageBox.cs:432
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.Show
static MessageBoxResult Show(string message, string title="Information", MessageBoxButton buttons=MessageBoxButton.OK, MessageBoxImage icon=MessageBoxImage.None, MessageBoxResult autoClick=MessageBoxResult.None, int autoClickDelaySeconds=0, int enableDelaySeconds=0)
Definition
DreamineMessageBox.cs:326
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox._lock
static object _lock
Definition
DreamineMessageBox.cs:236
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.State
Definition
DreamineMessageBox.cs:24
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.State._lastMessage
static ? string _lastMessage
Definition
DreamineMessageBox.cs:51
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.State.LastTitle
static ? string LastTitle
Definition
DreamineMessageBox.cs:94
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.State._lastButtons
static MessageBoxButton _lastButtons
Definition
DreamineMessageBox.cs:69
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.State.LastMessage
static ? string LastMessage
Definition
DreamineMessageBox.cs:108
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.State.IsOpen
static bool IsOpen
Definition
DreamineMessageBox.cs:80
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.State.IsSame
static bool IsSame(string title, string message, MessageBoxImage icon, MessageBoxButton buttons)
Definition
DreamineMessageBox.cs:189
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.State.LastIcon
static MessageBoxImage LastIcon
Definition
DreamineMessageBox.cs:122
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.State._lastIcon
static MessageBoxImage _lastIcon
Definition
DreamineMessageBox.cs:60
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.State._isOpen
static bool _isOpen
Definition
DreamineMessageBox.cs:33
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.State.LastButtons
static MessageBoxButton LastButtons
Definition
DreamineMessageBox.cs:136
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBox.State._lastTitle
static ? string _lastTitle
Definition
DreamineMessageBox.cs:42
Dreamine.UI.Wpf.Controls.MessageBox.DreamineMessageBoxWindow
Definition
DreamineMessageBoxWindow.xaml.cs:16
MessageBox
DreamineMessageBox.cs
다음에 의해 생성됨 :
1.17.0