SampleCrossUi.Wpf 1.0.0.0
SampleCrossUi.Wpf 사용 방법을 보여 주는 예제 프로젝트입니다.
로딩중...
검색중...
일치하는것 없음
SampleCrossUi.Wpf.ViewModels.PopupEvent 클래스 참조sealed

더 자세히 ...

Public 멤버 함수

 PopupEvent (IPopupService popupService)
void ShowMessageBox ()
void ShowBlinkOk ()
void ShowBlinkAlarm ()
void OpenAsWindow ()

속성

string LastResult = "-" [get, private set]

이벤트

EventHandler? Changed

Private 멤버 함수

void SetLastResult (string value)
async System.Threading.Tasks.Task ShowBlinkOkAsync ()
async System.Threading.Tasks.Task ShowBlinkAlarmAsync ()

정적 Private 멤버 함수

static void WrapWithTitleBar (Window popup)

Private 속성

readonly IPopupService _popupService

상세한 설명

Popup 화면의 실제 동작(메시지박스/블링크 팝업/별도 창 열기)을 처리합니다. PopupViewModel은 [DreamineCommand]를 통해 이 클래스의 메서드를 호출만 합니다.

PopupEvent.cs 파일의 22 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ PopupEvent()

SampleCrossUi.Wpf.ViewModels.PopupEvent.PopupEvent ( IPopupService popupService)
inline

지정한 설정으로 PopupEvent 클래스의 새 인스턴스를 초기화합니다.

매개변수
popupServicepopup Service에 사용할 IPopupService 값입니다.
예외
ArgumentNullException필수 입력 인자 중 하나가 null인 경우 발생합니다.

PopupEvent.cs 파일의 58 번째 라인에서 정의되었습니다.

59 {
60 _popupService = popupService ?? throw new ArgumentNullException(nameof(popupService));
61 }

다음을 참조함 : _popupService.

멤버 함수 문서화

◆ OpenAsWindow()

void SampleCrossUi.Wpf.ViewModels.PopupEvent.OpenAsWindow ( )
inline

Navigation 서브시스템(ViewLoader + PopupWindowManager) 데모. 이 화면(PopupView/PopupViewModel)을 타입명 규칙으로 다시 로드해서 메인 윈도우와 별개인 독립 팝업 창으로 띄운다.

PopupEvent.cs 파일의 157 번째 라인에서 정의되었습니다.

158 {
159 var info = ViewLoader.LoadViewWithViewModel(
160 typeof(PopupView).FullName!,
161 useSingletonView: true);
162
163 PopupWindowManager.Instance.CreatePopup(
164 "PopupViewWindow",
165 info,
166 popupWidth: 420,
167 popupHeight: 460,
168 centerOnScreen: true);
169
170 if (PopupWindowManager.Instance.Windows.TryGetValue("PopupViewWindow", out var popup))
171 {
172 // PopupWindowManager가 만드는 창은 WindowStyle=None이라 제목줄/닫기 버튼이 없다.
173 // 매번 새 Window+View가 만들어지므로, 매 호출마다 직접 타이틀바(드래그+닫기)를 씌워준다.
174 WrapWithTitleBar(popup);
175
176 PopupWindowManager.Instance.Show("PopupViewWindow");
177 popup.Activate();
178 popup.Focus();
179 }
180 else
181 {
182 PopupWindowManager.Instance.Show("PopupViewWindow");
183 }
184 }

다음을 참조함 : WrapWithTitleBar().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ SetLastResult()

void SampleCrossUi.Wpf.ViewModels.PopupEvent.SetLastResult ( string value)
inlineprivate

Last Result 값을 설정합니다.

매개변수
value적용할 값입니다.

PopupEvent.cs 파일의 99 번째 라인에서 정의되었습니다.

100 {
101 LastResult = value;
102 Changed?.Invoke(this, EventArgs.Empty);
103 }

다음을 참조함 : Changed, LastResult.

다음에 의해서 참조됨 : ShowBlinkAlarmAsync(), ShowBlinkOkAsync(), ShowMessageBox().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ShowBlinkAlarm()

void SampleCrossUi.Wpf.ViewModels.PopupEvent.ShowBlinkAlarm ( )
inline

Show Blink Alarm 작업을 수행합니다.

PopupEvent.cs 파일의 144 번째 라인에서 정의되었습니다.

145 {
146 _ = ShowBlinkAlarmAsync();
147 }

다음을 참조함 : ShowBlinkAlarmAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ShowBlinkAlarmAsync()

async System.Threading.Tasks.Task SampleCrossUi.Wpf.ViewModels.PopupEvent.ShowBlinkAlarmAsync ( )
inlineprivate

Show Blink Alarm Async 작업을 수행합니다.

반환값
Show Blink Alarm Async 작업에서 생성한 System.Threading.Tasks.Task 결과입니다.

PopupEvent.cs 파일의 284 번째 라인에서 정의되었습니다.

285 {
286 var result = await _popupService.ShowBlinkAsync(
287 Application.Current.MainWindow,
288 new BlinkPopupOptions
289 {
290 Title = "⚠ ALARM",
291 Message = "설비 이상이 감지되었습니다.\n운영자 확인이 필요합니다.",
292 UseBlink = true,
293 BlinkIntervalMs = 400,
294 Color1 = Color.FromRgb(180, 30, 30),
295 Color2 = Color.FromRgb(80, 10, 10),
296 Opacity1 = 1.0,
297 Opacity2 = 0.6,
298 OkText = "확인",
299 CancelText = "취소",
300 IsModal = true
301 });
302 SetLastResult($"BlinkPopup(Alarm) → {result}");
303 }

다음을 참조함 : _popupService, SetLastResult().

다음에 의해서 참조됨 : ShowBlinkAlarm().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ShowBlinkOk()

void SampleCrossUi.Wpf.ViewModels.PopupEvent.ShowBlinkOk ( )
inline

Show Blink Ok 작업을 수행합니다.

PopupEvent.cs 파일의 131 번째 라인에서 정의되었습니다.

132 {
133 _ = ShowBlinkOkAsync();
134 }

다음을 참조함 : ShowBlinkOkAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ShowBlinkOkAsync()

async System.Threading.Tasks.Task SampleCrossUi.Wpf.ViewModels.PopupEvent.ShowBlinkOkAsync ( )
inlineprivate

Show Blink Ok Async 작업을 수행합니다.

반환값
Show Blink Ok Async 작업에서 생성한 System.Threading.Tasks.Task 결과입니다.

PopupEvent.cs 파일의 253 번째 라인에서 정의되었습니다.

254 {
255 var result = await _popupService.ShowBlinkAsync(
256 Application.Current.MainWindow,
257 new BlinkPopupOptions
258 {
259 Title = "작업 완료",
260 Message = "작업이 성공적으로 완료되었습니다.",
261 UseBlink = false,
262 OkText = "확인",
263 IsModal = true
264 });
265 SetLastResult($"BlinkPopup(OK) → {result}");
266 }

다음을 참조함 : _popupService, SetLastResult().

다음에 의해서 참조됨 : ShowBlinkOk().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ShowMessageBox()

void SampleCrossUi.Wpf.ViewModels.PopupEvent.ShowMessageBox ( )
inline

Show Message Box 작업을 수행합니다.

PopupEvent.cs 파일의 113 번째 라인에서 정의되었습니다.

114 {
115 DreamineMessageBox.ShowAsync(
116 "DreamineMessageBox 데모입니다.\n버튼을 클릭하거나 기다리면 자동으로 닫힙니다.",
117 "MessageBox Demo",
118 autoClick: MessageBoxResult.OK,
119 autoClickDelaySeconds: 5,
120 callback: r => SetLastResult($"MessageBox → {r}"));
121 }

다음을 참조함 : SetLastResult().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ WrapWithTitleBar()

void SampleCrossUi.Wpf.ViewModels.PopupEvent.WrapWithTitleBar ( Window popup)
inlinestaticprivate

팝업 창의 기존 Content(View) 위에 드래그 가능한 타이틀바와 닫기(✕) 버튼을 추가한다.

매개변수
popuppopup에 사용할 Window 값입니다.

PopupEvent.cs 파일의 202 번째 라인에서 정의되었습니다.

203 {
204 if (popup.Content is not UIElement originalContent)
205 return;
206
207 popup.Content = null;
208
209 var root = new Grid();
210 root.RowDefinitions.Add(new RowDefinition { Height = new GridLength(32) });
211 root.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
212
213 var titleBar = new Border { Background = new SolidColorBrush(Color.FromRgb(0x0D, 0x1B, 0x3E)) };
214 Interaction.GetBehaviors(titleBar).Add(new WindowDragBehavior());
215
216 var closeButton = new Button
217 {
218 Content = "✕",
219 Width = 32,
220 Height = 32,
221 HorizontalAlignment = HorizontalAlignment.Right,
222 Background = Brushes.Transparent,
223 BorderThickness = new Thickness(0),
224 Foreground = Brushes.White
225 };
226 closeButton.Click += (_, _) => popup.Close();
227 titleBar.Child = closeButton;
228
229 Grid.SetRow(titleBar, 0);
230 Grid.SetRow(originalContent, 1);
231 root.Children.Add(titleBar);
232 root.Children.Add(originalContent);
233
234 popup.Content = root;
235 }

다음에 의해서 참조됨 : OpenAsWindow().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ _popupService

readonly IPopupService SampleCrossUi.Wpf.ViewModels.PopupEvent._popupService
private

popup Service 값을 보관합니다.

PopupEvent.cs 파일의 32 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : PopupEvent(), ShowBlinkAlarmAsync(), ShowBlinkOkAsync().

속성 문서화

◆ LastResult

string SampleCrossUi.Wpf.ViewModels.PopupEvent.LastResult = "-"
getprivate set

Last Result 값을 가져오거나 설정합니다.

PopupEvent.cs 파일의 71 번째 라인에서 정의되었습니다.

71{ get; private set; } = "-";

다음에 의해서 참조됨 : SetLastResult().

이벤트 문서화

◆ Changed

EventHandler? SampleCrossUi.Wpf.ViewModels.PopupEvent.Changed

LastResult가 갱신될 때마다 발생합니다. ViewModel이 구독해서 OnPropertyChanged를 전달합니다.

PopupEvent.cs 파일의 81 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : SetLastResult().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: