Dreamine.UI.WinForms 1.0.1
Dreamine.UI.WinForms 사용자 인터페이스 기능과 구성 요소를 제공합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.UI.WinForms.Controls.DreamineTabControl 클래스 참조

더 자세히 ...

Dreamine.UI.WinForms.Controls.DreamineTabControl에 대한 상속 다이어그램 :
Dreamine.UI.WinForms.Controls.DreamineTabControl에 대한 협력 다이어그램:

Public 멤버 함수

 DreamineTabControl ()

Protected 멤버 함수

override void OnPaint (PaintEventArgs e)
override void OnDrawItem (DrawItemEventArgs e)
override void OnMouseMove (MouseEventArgs e)
override void OnMouseLeave (EventArgs e)

Private 멤버 함수

void DrawTabItem (Graphics g, int index)

상세한 설명

다크 테마 머리글과 선택 밑줄을 직접 그리는 WinForms 탭 컨트롤입니다.

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

생성자 & 소멸자 문서화

◆ DreamineTabControl()

Dreamine.UI.WinForms.Controls.DreamineTabControl.DreamineTabControl ( )
inline

사용자 지정 그리기 스타일, 탭 크기 및 Dreamine 테마 기본값을 구성합니다.

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

26 {
27 SetStyle(
28 ControlStyles.AllPaintingInWmPaint |
29 ControlStyles.UserPaint |
30 ControlStyles.DoubleBuffer |
31 ControlStyles.ResizeRedraw, true);
32
33 DrawMode = TabDrawMode.OwnerDrawFixed;
34 ItemSize = new Size(120, 36);
35 Padding = new Point(12, 6);
36 BackColor = DreamineTheme.AppBackground;
37 Font = new Font("Segoe UI", 10f, FontStyle.Bold, GraphicsUnit.Point);
38 }

다음을 참조함 : Dreamine.UI.WinForms.DreamineTheme.AppBackground.

멤버 함수 문서화

◆ DrawTabItem()

void Dreamine.UI.WinForms.Controls.DreamineTabControl.DrawTabItem ( Graphics g,
int index )
inlineprivate

지정한 인덱스의 탭을 선택 및 호버 상태에 맞게 그립니다.

매개변수
g탭을 그릴 그래픽 컨텍스트입니다.
index그릴 탭의 인덱스입니다.

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

129 {
130 if (index < 0 || index >= TabCount) return;
131 var tabRect = GetTabRect(index);
132 bool selected = SelectedIndex == index;
133
134 // Hover detection
135 var mousePos = PointToClient(Cursor.Position);
136 bool hovered = tabRect.Contains(mousePos) && !selected;
137
138 // Background
139 var bg = hovered
140 ? Color.FromArgb(0xFF, 0x16, 0x20, 0x40)
141 : DreamineTheme.BarBackground;
142
143 using var bgBrush = new SolidBrush(bg);
144 g.FillRectangle(bgBrush, tabRect);
145
146 // Selected: blue underline
147 if (selected)
148 {
149 using var selPen = new Pen(DreamineTheme.AccentBlue, 2.5f);
150 g.DrawLine(selPen, tabRect.Left + 4, tabRect.Bottom - 1, tabRect.Right - 4, tabRect.Bottom - 1);
151 }
152
153 // Label
154 var textColor = selected ? DreamineTheme.TextPrimary
155 : hovered ? Color.FromArgb(0xFF, 0xCC, 0xE4, 0xFF)
156 : DreamineTheme.TextSecondary;
157
158 using var brush = new SolidBrush(textColor);
159 var sf = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center };
160 g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
161 g.DrawString(TabPages[index].Text, Font, brush, tabRect, sf);
162 }

다음을 참조함 : Dreamine.UI.WinForms.DreamineTheme.AccentBlue, Dreamine.UI.WinForms.DreamineTheme.BarBackground, Dreamine.UI.WinForms.DreamineTheme.TextPrimary, Dreamine.UI.WinForms.DreamineTheme.TextSecondary.

다음에 의해서 참조됨 : OnDrawItem(), OnPaint().

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

◆ OnDrawItem()

override void Dreamine.UI.WinForms.Controls.DreamineTabControl.OnDrawItem ( DrawItemEventArgs e)
inlineprotected

프레임워크 그리기 요청의 지정 탭 항목을 그립니다.

매개변수
e탭 항목 그리기 이벤트 인수입니다.

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

100 {
101 DrawTabItem(e.Graphics, e.Index);
102 }

다음을 참조함 : DrawTabItem().

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

◆ OnMouseLeave()

override void Dreamine.UI.WinForms.Controls.DreamineTabControl.OnMouseLeave ( EventArgs e)
inlineprotected

포인터가 떠날 때 탭 호버 표시를 지우도록 다시 그리기를 요청합니다.

매개변수
e마우스 이벤트 인수입니다.

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

202 {
203 base.OnMouseLeave(e);
204 Invalidate();
205 }

◆ OnMouseMove()

override void Dreamine.UI.WinForms.Controls.DreamineTabControl.OnMouseMove ( MouseEventArgs e)
inlineprotected

포인터 이동 시 탭 호버 표시를 갱신하도록 다시 그리기를 요청합니다.

매개변수
e마우스 이동 이벤트 인수입니다.

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

181 {
182 base.OnMouseMove(e);
183 Invalidate(); // 호버 갱신
184 }

◆ OnPaint()

override void Dreamine.UI.WinForms.Controls.DreamineTabControl.OnPaint ( PaintEventArgs e)
inlineprotected

머리글 표시줄, 모든 탭 항목 및 콘텐츠 배경을 그립니다.

매개변수
e컨트롤 그리기 이벤트 인수입니다.

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

57 {
58 var g = e.Graphics;
59 g.Clear(DreamineTheme.AppBackground);
60
61 // Header bar background
62 var headerRect = new Rectangle(0, 0, Width, ItemSize.Height + 1);
63 using var headerBrush = new SolidBrush(DreamineTheme.BarBackground);
64 g.FillRectangle(headerBrush, headerRect);
65
66 // Header bar bottom border
67 using var dividerPen = new Pen(DreamineTheme.BorderNormal, 1f);
68 g.DrawLine(dividerPen, 0, ItemSize.Height, Width, ItemSize.Height);
69
70 // Draw tab items
71 for (int i = 0; i < TabCount; i++)
72 DrawTabItem(g, i);
73
74 // Content area
75 if (SelectedTab != null)
76 {
77 var contentRect = new Rectangle(0, ItemSize.Height + 1, Width, Height - ItemSize.Height - 1);
78 using var contentBrush = new SolidBrush(DreamineTheme.AppBackground);
79 g.FillRectangle(contentBrush, contentRect);
80 }
81 }

다음을 참조함 : Dreamine.UI.WinForms.DreamineTheme.AppBackground, Dreamine.UI.WinForms.DreamineTheme.BarBackground, Dreamine.UI.WinForms.DreamineTheme.BorderNormal, DrawTabItem().

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

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