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

더 자세히 ...

SampleCrossUi.WinForms.Pages.LightBulbPage에 대한 상속 다이어그램 :
SampleCrossUi.WinForms.Pages.LightBulbPage에 대한 협력 다이어그램:

Public 멤버 함수

 LightBulbPage ()
 LightBulbPage (LightBulbViewModel vm)

Protected 멤버 함수

override void Dispose (bool disposing)

Private 멤버 함수

void OnViewModelPropertyChanged (object? sender, PropertyChangedEventArgs e)
void RefreshState ()

Private 속성

readonly LightBulbViewModel _vm
readonly Label _title
readonly Label _description
readonly DreamineLightBulb _bulb
readonly Label _status
readonly DreamineButton _toggleButton
readonly CheckBox _powerCheckBox
readonly Label _count
bool _refreshing

상세한 설명

Light Bulb Page 기능과 관련 상태를 캡슐화합니다.

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

생성자 & 소멸자 문서화

◆ LightBulbPage() [1/2]

SampleCrossUi.WinForms.Pages.LightBulbPage.LightBulbPage ( )
inline

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

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

108: this(new LightBulbViewModel(new LightBulbEvent(new LightBulbModel()))) { }

◆ LightBulbPage() [2/2]

SampleCrossUi.WinForms.Pages.LightBulbPage.LightBulbPage ( LightBulbViewModel vm)
inline

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

매개변수
vmvm에 사용할 LightBulbViewModel 값입니다.

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

127 {
128 _vm = vm;
129
130 BackColor = DreamineTheme.AppBackground;
131 Dock = DockStyle.Fill;
132
133 var layout = new TableLayoutPanel
134 {
135 Dock = DockStyle.Fill,
136 ColumnCount = 1,
137 RowCount = 6,
138 Padding = new Padding(24),
139 };
140 layout.RowStyles.Add(new RowStyle(SizeType.AutoSize));
141 layout.RowStyles.Add(new RowStyle(SizeType.AutoSize));
142 layout.RowStyles.Add(new RowStyle(SizeType.Absolute, 180));
143 layout.RowStyles.Add(new RowStyle(SizeType.AutoSize));
144 layout.RowStyles.Add(new RowStyle(SizeType.AutoSize));
145 layout.RowStyles.Add(new RowStyle(SizeType.Percent, 100));
146
147 _title = new Label
148 {
149 Text = "Light Bulb",
150 AutoSize = true,
151 ForeColor = Color.White,
152 Font = new Font("Segoe UI", 22f, FontStyle.Bold),
153 Anchor = AnchorStyles.None,
154 Margin = new Padding(0, 0, 0, 8)
155 };
156
157 _description = new Label
158 {
159 Text = "A button command and a checkbox binding drive the same shared state.",
160 AutoSize = true,
161 ForeColor = Color.FromArgb(184, 198, 221),
162 Font = new Font("Segoe UI", 10f),
163 Anchor = AnchorStyles.None,
164 Margin = new Padding(0, 0, 0, 18)
165 };
166
167 _bulb = new DreamineLightBulb
168 {
169 Width = 160,
170 Height = 170,
171 Diameter = 112,
172 Anchor = AnchorStyles.None,
173 BackColor = DreamineTheme.AppBackground,
174 Margin = new Padding(0, 0, 0, 6)
175 };
176
177 _status = new Label
178 {
179 AutoSize = true,
180 ForeColor = Color.FromArgb(141, 203, 255),
181 Font = new Font("Consolas", 10f, FontStyle.Bold),
182 Anchor = AnchorStyles.None,
183 Margin = new Padding(0, 0, 0, 18)
184 };
185
186 var row = new FlowLayoutPanel
187 {
188 AutoSize = true,
189 Anchor = AnchorStyles.None,
190 FlowDirection = FlowDirection.LeftToRight,
191 WrapContents = false,
192 };
193
194 _toggleButton = new DreamineButton
195 {
196 Content = "Toggle",
197 Width = 110,
198 Height = 40,
199 Margin = new Padding(0, 0, 14, 0),
200 };
201
202 _powerCheckBox = new CheckBox
203 {
204 Text = "Power",
205 AutoSize = true,
206 ForeColor = Color.White,
207 BackColor = DreamineTheme.AppBackground,
208 Margin = new Padding(0, 10, 14, 0),
209 };
210
211 _count = new Label
212 {
213 AutoSize = true,
214 ForeColor = Color.FromArgb(217, 227, 241),
215 Font = new Font("Consolas", 9f),
216 Margin = new Padding(0, 12, 0, 0),
217 };
218
219 row.Controls.Add(_toggleButton);
220 row.Controls.Add(_powerCheckBox);
221 row.Controls.Add(_count);
222
223 layout.Controls.Add(_title, 0, 0);
224 layout.Controls.Add(_description, 0, 1);
225 layout.Controls.Add(_bulb, 0, 2);
226 layout.Controls.Add(_status, 0, 3);
227 layout.Controls.Add(row, 0, 4);
228 Controls.Add(layout);
229
230 _toggleButton.Click += (_, _) => _vm.ToggleCommand.Execute(null);
231 _powerCheckBox.CheckedChanged += (_, _) =>
232 {
233 if (_refreshing || _vm.IsOn == _powerCheckBox.Checked) return;
234 _vm.ToggleCommand.Execute(null);
235 };
236 _vm.PropertyChanged += OnViewModelPropertyChanged;
237
238 RefreshState();
239 }

다음을 참조함 : _bulb, _count, _description, _powerCheckBox, _refreshing, _status, _title, _toggleButton, _vm, OnViewModelPropertyChanged(), RefreshState().

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

멤버 함수 문서화

◆ Dispose()

override void SampleCrossUi.WinForms.Pages.LightBulbPage.Dispose ( bool disposing)
inlineprotected

이 인스턴스가 소유한 리소스를 해제합니다.

매개변수
disposingdisposing에 사용할 bool 값입니다.

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

307 {
308 if (disposing)
309 _vm.PropertyChanged -= OnViewModelPropertyChanged;
310 base.Dispose(disposing);
311 }

다음을 참조함 : OnViewModelPropertyChanged().

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

◆ OnViewModelPropertyChanged()

void SampleCrossUi.WinForms.Pages.LightBulbPage.OnViewModelPropertyChanged ( object? sender,
PropertyChangedEventArgs e )
inlineprivate

View Model Property Changed 이벤트 또는 상태 변경을 처리합니다.

매개변수
sender이벤트를 발생시킨 객체입니다.
e이벤트와 관련된 데이터를 포함합니다.

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

266 {
267 if (IsDisposed) return;
268 if (InvokeRequired) BeginInvoke(RefreshState);
269 else RefreshState();
270 }

다음을 참조함 : RefreshState().

다음에 의해서 참조됨 : Dispose(), LightBulbPage().

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

◆ RefreshState()

void SampleCrossUi.WinForms.Pages.LightBulbPage.RefreshState ( )
inlineprivate

Refresh State 작업을 수행합니다.

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

281 {
282 _refreshing = true;
283 _powerCheckBox.Checked = _vm.IsOn;
284 _bulb.IsOn = _vm.IsOn;
285 _status.Text = _vm.StatusText;
286 _count.Text = $"Toggled {_vm.ToggleCount}x";
287 _refreshing = false;
288 }

다음을 참조함 : _refreshing, _vm.

다음에 의해서 참조됨 : LightBulbPage(), OnViewModelPropertyChanged().

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

멤버 데이터 문서화

◆ _bulb

readonly DreamineLightBulb SampleCrossUi.WinForms.Pages.LightBulbPage._bulb
private

bulb 값을 보관합니다.

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

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

◆ _count

readonly Label SampleCrossUi.WinForms.Pages.LightBulbPage._count
private

count 값을 보관합니다.

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

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

◆ _description

readonly Label SampleCrossUi.WinForms.Pages.LightBulbPage._description
private

description 값을 보관합니다.

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

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

◆ _powerCheckBox

readonly CheckBox SampleCrossUi.WinForms.Pages.LightBulbPage._powerCheckBox
private

power Check Box 값을 보관합니다.

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

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

◆ _refreshing

bool SampleCrossUi.WinForms.Pages.LightBulbPage._refreshing
private

refreshing 값을 보관합니다.

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

다음에 의해서 참조됨 : LightBulbPage(), RefreshState().

◆ _status

readonly Label SampleCrossUi.WinForms.Pages.LightBulbPage._status
private

status 값을 보관합니다.

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

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

◆ _title

readonly Label SampleCrossUi.WinForms.Pages.LightBulbPage._title
private

title 값을 보관합니다.

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

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

◆ _toggleButton

readonly DreamineButton SampleCrossUi.WinForms.Pages.LightBulbPage._toggleButton
private

toggle Button 값을 보관합니다.

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

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

◆ _vm

readonly LightBulbViewModel SampleCrossUi.WinForms.Pages.LightBulbPage._vm
private

vm 값을 보관합니다.

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

다음에 의해서 참조됨 : LightBulbPage(), RefreshState().


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