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

더 자세히 ...

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

Public 멤버 함수

 MainForm ()
 MainForm (CounterViewModel counterVm, LightBulbViewModel lightBulbVm)

Protected 멤버 함수

override void Dispose (bool disposing)

Private 멤버 함수

void Navigate (int index)
void InitializeComponent ()
void CenterNavFlow ()

Private 속성

Panel _pageHost = null!
Panel _navPanel = null!
FlowLayoutPanel _navFlow = null!
DreamineButton _btnCounter = null!
DreamineButton _btnLightBulb = null!
DreamineButton _btnControls = null!
DreamineButton _btnPopup = null!
DreamineButton[] _navButtons = null!
UserControl? _currentPage
CounterPage _counterPage = null!
LightBulbPage _lightBulbPage = null!
ControlsPage _controlsPage = null!
PopupPage _popupPage = null!

상세한 설명

Main Form 기능과 관련 상태를 캡슐화합니다.

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

생성자 & 소멸자 문서화

◆ MainForm() [1/2]

SampleCrossUi.WinForms.MainForm.MainForm ( )
inline

VS WinForms 디자이너용 기본 생성자.

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

149 : this(
150 new CounterViewModel(new CounterEvent(new SampleCrossUi.Shared.Services.CounterService())),
151 new LightBulbViewModel(new LightBulbEvent(new LightBulbModel()))) { }

◆ MainForm() [2/2]

SampleCrossUi.WinForms.MainForm.MainForm ( CounterViewModel counterVm,
LightBulbViewModel lightBulbVm )
inline

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

매개변수
counterVmcounter Vm에 사용할 CounterViewModel 값입니다.
lightBulbVmlight Bulb Vm에 사용할 LightBulbViewModel 값입니다.

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

178 {
179 InitializeComponent();
180
181 Resize += (_, _) => CenterNavFlow();
182 Load += (_, _) => CenterNavFlow();
183
184 _navButtons = [_btnCounter, _btnLightBulb, _btnControls, _btnPopup];
185 for (int i = 0; i < _navButtons.Length; i++)
186 {
187 var idx = i;
188 _navButtons[i].Click += (_, _) => Navigate(idx);
189 }
190
191 if (LicenseManager.UsageMode == LicenseUsageMode.Designtime)
192 return;
193
194 _counterPage = new CounterPage(counterVm);
195 _lightBulbPage = new LightBulbPage(lightBulbVm);
196 _controlsPage = new ControlsPage(new ControlsViewModel(new ControlsEvent()));
197 _popupPage = new PopupPage();
198
199 Navigate(0);
200 }

다음을 참조함 : _btnControls, _btnCounter, _btnLightBulb, _btnPopup, _controlsPage, _counterPage, _lightBulbPage, _navButtons, _popupPage, CenterNavFlow(), InitializeComponent(), Navigate().

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

멤버 함수 문서화

◆ CenterNavFlow()

void SampleCrossUi.WinForms.MainForm.CenterNavFlow ( )
inlineprivate

네비게이션 바 버튼들을 가운데로 정렬한다(WPF DreamineNavigationBar는 자체적으로 처리하지만, WinForms FlowLayoutPanel은 가운데 정렬을 직접 지원하지 않아 패딩으로 흉내낸다).

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

339 {
340 var totalWidth = _navFlow.Controls.Cast<Control>().Sum(c => c.Width + c.Margin.Horizontal);
341 var offset = Math.Max(0, (_navPanel.Width - totalWidth) / 2);
342 _navFlow.Padding = new Padding(offset, 0, 0, 0);
343 }

다음을 참조함 : _navFlow, _navPanel.

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

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

◆ Dispose()

override void SampleCrossUi.WinForms.MainForm.Dispose ( bool disposing)
inlineprotected

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

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

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

362 {
363 if (disposing)
364 {
365 _counterPage?.Dispose();
366 _lightBulbPage?.Dispose();
367 _controlsPage?.Dispose();
368 _popupPage?.Dispose();
369 }
370 base.Dispose(disposing);
371 }

다음을 참조함 : _controlsPage, _counterPage, _lightBulbPage, _popupPage.

◆ InitializeComponent()

void SampleCrossUi.WinForms.MainForm.InitializeComponent ( )
inlineprivate

Initialize Component 작업을 수행합니다.

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

252 {
253 _btnCounter = new DreamineButton();
254 _btnLightBulb = new DreamineButton();
255 _btnControls = new DreamineButton();
256 _btnPopup = new DreamineButton();
257 _navFlow = new FlowLayoutPanel();
258 _navPanel = new Panel();
259 _pageHost = new Panel();
260
261 SuspendLayout();
262
263 // _btnCounter — WPF DreamineNavigationBar 버튼과 동일한 크기/배치(가로 나열)
264 _btnCounter.Content = "Counter";
265 _btnCounter.Width = 140;
266 _btnCounter.Height = 40;
267 _btnCounter.CornerRadius = 6;
268 _btnCounter.Margin = new Padding(4);
269 _btnCounter.Name = "_btnCounter";
270
271 // _btnLightBulb
272 _btnLightBulb.Content = "Light Bulb";
273 _btnLightBulb.Width = 140;
274 _btnLightBulb.Height = 40;
275 _btnLightBulb.CornerRadius = 6;
276 _btnLightBulb.Margin = new Padding(4);
277 _btnLightBulb.Name = "_btnLightBulb";
278
279 // _btnControls
280 _btnControls.Content = "Controls";
281 _btnControls.Width = 140;
282 _btnControls.Height = 40;
283 _btnControls.CornerRadius = 6;
284 _btnControls.Margin = new Padding(4);
285 _btnControls.Name = "_btnControls";
286
287 // _btnPopup
288 _btnPopup.Content = "Popup";
289 _btnPopup.Width = 140;
290 _btnPopup.Height = 40;
291 _btnPopup.CornerRadius = 6;
292 _btnPopup.Margin = new Padding(4);
293 _btnPopup.Name = "_btnPopup";
294
295 // _navFlow — WPF처럼 가로로 나열되는 네비게이션 버튼들
296 _navFlow.Dock = DockStyle.Fill;
297 _navFlow.FlowDirection = FlowDirection.LeftToRight;
298 _navFlow.WrapContents = false;
299 _navFlow.Anchor = AnchorStyles.None;
300 _navFlow.AutoSize = true;
301 _navFlow.Controls.Add(_btnCounter);
302 _navFlow.Controls.Add(_btnLightBulb);
303 _navFlow.Controls.Add(_btnControls);
304 _navFlow.Controls.Add(_btnPopup);
305
306 // _navPanel — 상단 가로 네비게이션 바(WPF MainWindow의 DreamineNavigationBar 행과 동일한 위치)
307 _navPanel.Dock = DockStyle.Top;
308 _navPanel.Height = 64;
309 _navPanel.BackColor = DreamineTheme.NavBackground;
310 _navPanel.Padding = new Padding(5);
311 _navPanel.Controls.Add(_navFlow);
312
313 // _pageHost
314 _pageHost.Dock = DockStyle.Fill;
315 _pageHost.BackColor = DreamineTheme.AppBackground;
316
317 // MainForm
318 Text = "Dreamine Cross-UI — WinForms";
319 ClientSize = new Size(1100, 860);
320 MinimumSize = new Size(960, 700);
321 StartPosition = FormStartPosition.CenterScreen;
322 BackColor = DreamineTheme.AppBackground;
323 Name = "MainForm";
324 Controls.Add(_pageHost);
325 Controls.Add(_navPanel);
326
327 ResumeLayout(false);
328 }

다음을 참조함 : _btnControls, _btnCounter, _btnLightBulb, _btnPopup, _navFlow, _navPanel, _pageHost.

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

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

◆ Navigate()

void SampleCrossUi.WinForms.MainForm.Navigate ( int index)
inlineprivate

Navigate 작업을 수행합니다.

매개변수
indexindex에 사용할 int 값입니다.

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

219 {
220 for (int i = 0; i < _navButtons.Length; i++)
221 _navButtons[i].IsSelected = i == index;
222
223 _currentPage?.Hide();
224
225 _currentPage = index switch
226 {
227 0 => _counterPage,
228 1 => _lightBulbPage,
229 2 => _controlsPage,
230 3 => _popupPage,
231 _ => _counterPage,
232 };
233
234 if (!_pageHost.Controls.Contains(_currentPage))
235 {
236 _currentPage.Dock = DockStyle.Fill;
237 _pageHost.Controls.Add(_currentPage);
238 }
239 _currentPage.Show();
240 _currentPage.BringToFront();
241 }

다음을 참조함 : _controlsPage, _counterPage, _currentPage, _lightBulbPage, _navButtons, _pageHost, _popupPage.

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

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

멤버 데이터 문서화

◆ _btnControls

DreamineButton SampleCrossUi.WinForms.MainForm._btnControls = null!
private

btn Controls 값을 보관합니다.

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

다음에 의해서 참조됨 : InitializeComponent(), MainForm().

◆ _btnCounter

DreamineButton SampleCrossUi.WinForms.MainForm._btnCounter = null!
private

btn Counter 값을 보관합니다.

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

다음에 의해서 참조됨 : InitializeComponent(), MainForm().

◆ _btnLightBulb

DreamineButton SampleCrossUi.WinForms.MainForm._btnLightBulb = null!
private

btn Light Bulb 값을 보관합니다.

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

다음에 의해서 참조됨 : InitializeComponent(), MainForm().

◆ _btnPopup

DreamineButton SampleCrossUi.WinForms.MainForm._btnPopup = null!
private

btn Popup 값을 보관합니다.

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

다음에 의해서 참조됨 : InitializeComponent(), MainForm().

◆ _controlsPage

ControlsPage SampleCrossUi.WinForms.MainForm._controlsPage = null!
private

controls Page 값을 보관합니다.

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

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

◆ _counterPage

CounterPage SampleCrossUi.WinForms.MainForm._counterPage = null!
private

counter Page 값을 보관합니다.

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

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

◆ _currentPage

UserControl? SampleCrossUi.WinForms.MainForm._currentPage
private

current Page 값을 보관합니다.

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

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

◆ _lightBulbPage

LightBulbPage SampleCrossUi.WinForms.MainForm._lightBulbPage = null!
private

light Bulb Page 값을 보관합니다.

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

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

◆ _navButtons

DreamineButton [] SampleCrossUi.WinForms.MainForm._navButtons = null!
private

nav Buttons 값을 보관합니다.

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

다음에 의해서 참조됨 : MainForm(), Navigate().

◆ _navFlow

FlowLayoutPanel SampleCrossUi.WinForms.MainForm._navFlow = null!
private

nav Flow 값을 보관합니다.

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

다음에 의해서 참조됨 : CenterNavFlow(), InitializeComponent().

◆ _navPanel

Panel SampleCrossUi.WinForms.MainForm._navPanel = null!
private

nav Panel 값을 보관합니다.

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

다음에 의해서 참조됨 : CenterNavFlow(), InitializeComponent().

◆ _pageHost

Panel SampleCrossUi.WinForms.MainForm._pageHost = null!
private

page Host 값을 보관합니다.

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

다음에 의해서 참조됨 : InitializeComponent(), Navigate().

◆ _popupPage

PopupPage SampleCrossUi.WinForms.MainForm._popupPage = null!
private

popup Page 값을 보관합니다.

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

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


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