Dreamine.UI.Maui 1.0.1
Windows(WinUI)의 네이티브 `CheckBox`는 `WidthRequest`로 줄일 수 없는 거대한 최소 너비를 가져서 라벨과의 간격이 벌어지는 문제가 있어, 처음부터 직접 그려서 만들었습니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.UI.Maui.Popup.DreamineMessageBoxPage 클래스 참조

더 자세히 ...

Dreamine.UI.Maui.Popup.DreamineMessageBoxPage에 대한 상속 다이어그램 :
Dreamine.UI.Maui.Popup.DreamineMessageBoxPage에 대한 협력 다이어그램:

Public 멤버 함수

 DreamineMessageBoxPage (string title, string message, IReadOnlyList<(DreamineDialogResult Result, string Text)> buttons, DreamineDialogResult autoClick=DreamineDialogResult.None, int autoClickDelaySeconds=0)

속성

Task< DreamineDialogResultResultTask [get]

Private 멤버 함수

void UpdateCountdownText ()
void Complete (DreamineDialogResult result)

Private 속성

readonly TaskCompletionSource< DreamineDialogResult_tcs = new()
IDispatcherTimer? _autoClickTimer
int _autoClickRemainingSeconds
DreamineDialogResult _autoClickResult
string _baseMessage = string.Empty

상세한 설명

메시지, 선택 버튼 및 선택적 자동 선택 카운트다운을 렌더링하는 내부 MAUI 모달 페이지입니다.

별도의 운영체제 창 대신 반투명 배경의 모달 페이지로 팝업 동작을 제공합니다.

DreamineMessageBoxPage.xaml.cs 파일의 19 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ DreamineMessageBoxPage()

Dreamine.UI.Maui.Popup.DreamineMessageBoxPage.DreamineMessageBoxPage ( string title,
string message,
IReadOnlyList<(DreamineDialogResult Result, string Text)> buttons,
DreamineDialogResult autoClick = DreamineDialogResult::None,
int autoClickDelaySeconds = 0 )
inline

지정한 콘텐츠, 버튼 및 자동 선택 설정으로 메시지 상자 페이지를 초기화합니다.

매개변수
title메시지 상자 제목입니다.
message표시할 메시지입니다.
buttons결과와 표시 텍스트로 구성된 버튼 목록입니다.
autoClick카운트다운 만료 시 자동 선택할 결과입니다.
autoClickDelaySeconds자동 선택 전 대기할 초입니다.
예외
NullReferenceExceptionbuttonsnull일 때 발생합니다.

DreamineMessageBoxPage.xaml.cs 파일의 133 번째 라인에서 정의되었습니다.

139 {
140 InitializeComponent();
141
142 TitleLabel.Text = title;
143 MessageLabel.Text = message;
144 _autoClickResult = autoClick;
145
146 foreach (var (result, text) in buttons)
147 {
148 var button = new Button
149 {
150 Text = text,
151 BackgroundColor = Color.FromArgb("#0D1B3E"),
152 TextColor = Colors.White,
153 CornerRadius = 6,
154 WidthRequest = 90,
155 HeightRequest = 36
156 };
157 button.Clicked += (_, _) => Complete(result);
158 ButtonRow.Children.Add(button);
159 }
160
161 if (autoClickDelaySeconds > 0 && autoClick != DreamineDialogResult.None)
162 {
163 _autoClickRemainingSeconds = autoClickDelaySeconds;
164 _baseMessage = message;
165 UpdateCountdownText();
166
167 _autoClickTimer = Dispatcher.CreateTimer();
168 _autoClickTimer.Interval = TimeSpan.FromSeconds(1);
169 _autoClickTimer.Tick += (_, _) =>
170 {
171 _autoClickRemainingSeconds--;
172 if (_autoClickRemainingSeconds <= 0)
173 {
174 _autoClickTimer?.Stop();
175 Complete(_autoClickResult);
176 }
177 else
178 {
179 UpdateCountdownText();
180 }
181 };
182 _autoClickTimer.Start();
183 }
184 }

다음을 참조함 : _autoClickRemainingSeconds, _autoClickResult, _autoClickTimer, _baseMessage, Complete(), UpdateCountdownText().

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

멤버 함수 문서화

◆ Complete()

void Dreamine.UI.Maui.Popup.DreamineMessageBoxPage.Complete ( DreamineDialogResult result)
inlineprivate

자동 선택 타이머를 중지하고 결과 작업을 완료한 뒤 모달 페이지를 닫습니다.

매개변수
result메시지 상자의 최종 결과입니다.

DreamineMessageBoxPage.xaml.cs 파일의 213 번째 라인에서 정의되었습니다.

214 {
215 _autoClickTimer?.Stop();
216 if (!_tcs.Task.IsCompleted)
217 _tcs.SetResult(result);
218
219 Navigation.PopModalAsync(animated: false);
220 }

다음을 참조함 : _autoClickTimer, _tcs.

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

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

◆ UpdateCountdownText()

void Dreamine.UI.Maui.Popup.DreamineMessageBoxPage.UpdateCountdownText ( )
inlineprivate

기본 메시지에 자동 선택까지 남은 시간을 추가하여 표시합니다.

DreamineMessageBoxPage.xaml.cs 파일의 194 번째 라인에서 정의되었습니다.

195 => MessageLabel.Text = $"{_baseMessage}\n\n({_autoClickRemainingSeconds}초 후 자동으로 닫힙니다)";

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

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

멤버 데이터 문서화

◆ _autoClickRemainingSeconds

int Dreamine.UI.Maui.Popup.DreamineMessageBoxPage._autoClickRemainingSeconds
private

auto Click Remaining Seconds 값을 보관합니다.

DreamineMessageBoxPage.xaml.cs 파일의 47 번째 라인에서 정의되었습니다.

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

◆ _autoClickResult

DreamineDialogResult Dreamine.UI.Maui.Popup.DreamineMessageBoxPage._autoClickResult
private

auto Click Result 값을 보관합니다.

DreamineMessageBoxPage.xaml.cs 파일의 56 번째 라인에서 정의되었습니다.

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

◆ _autoClickTimer

IDispatcherTimer? Dreamine.UI.Maui.Popup.DreamineMessageBoxPage._autoClickTimer
private

auto Click Timer 값을 보관합니다.

DreamineMessageBoxPage.xaml.cs 파일의 38 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Complete(), DreamineMessageBoxPage().

◆ _baseMessage

string Dreamine.UI.Maui.Popup.DreamineMessageBoxPage._baseMessage = string.Empty
private

base Message 값을 보관합니다.

DreamineMessageBoxPage.xaml.cs 파일의 65 번째 라인에서 정의되었습니다.

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

◆ _tcs

readonly TaskCompletionSource<DreamineDialogResult> Dreamine.UI.Maui.Popup.DreamineMessageBoxPage._tcs = new()
private

tcs 값을 보관합니다.

DreamineMessageBoxPage.xaml.cs 파일의 29 번째 라인에서 정의되었습니다.

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

속성 문서화

◆ ResultTask

Task<DreamineDialogResult> Dreamine.UI.Maui.Popup.DreamineMessageBoxPage.ResultTask
get

사용자가 메시지 상자를 완료할 때 최종 결과를 생성하는 작업을 가져옵니다.

DreamineMessageBoxPage.xaml.cs 파일의 75 번째 라인에서 정의되었습니다.


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