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

더 자세히 ...

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

Public 멤버 함수

 DreamineExpander ()

Protected 멤버 함수

override void OnPaint (PaintEventArgs e)

속성

string Header [get, set]
bool IsExpanded [get, set]
Panel Content [get]
override Size DefaultSize [get]

이벤트

EventHandler? ExpandedChanged

Private 멤버 함수

void OnHeaderClick (object? s, EventArgs e)
void ApplyExpandState ()

Private 속성

readonly Panel _headerPanel
readonly Label _headerLabel
readonly Label _arrowLabel
readonly Panel _contentPanel
int _expandedHeight
string _header = string.Empty
bool _isExpanded = true

정적 Private 속성

const int HeaderHeight = 36

상세한 설명

클릭 가능한 머리글과 접기/펼치기 콘텐츠 패널을 제공하는 WinForms 확장 컨트롤입니다.

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

생성자 & 소멸자 문서화

◆ DreamineExpander()

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

머리글, 화살표, 콘텐츠 패널 및 Dreamine 테마 기본값을 구성합니다.

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

156 {
157 SetStyle(
158 ControlStyles.AllPaintingInWmPaint |
159 ControlStyles.UserPaint |
160 ControlStyles.DoubleBuffer |
161 ControlStyles.ResizeRedraw, true);
162
163 BackColor = DreamineTheme.CardBackground;
164 ForeColor = DreamineTheme.TextPrimary;
165 Font = new Font("Segoe UI", 10f, FontStyle.Regular, GraphicsUnit.Point);
166
167 // Header
168 _headerPanel = new Panel
169 {
170 Dock = DockStyle.Top,
171 Height = HeaderHeight,
172 BackColor = DreamineTheme.CardBackground,
173 Cursor = Cursors.Hand,
174 };
175
176 _arrowLabel = new Label
177 {
178 Text = "▼",
179 ForeColor = DreamineTheme.TextSecondary,
180 Font = new Font("Segoe UI", 8f, FontStyle.Regular, GraphicsUnit.Point),
181 AutoSize = false,
182 Width = 20,
183 TextAlign = ContentAlignment.MiddleCenter,
184 Dock = DockStyle.Left,
185 BackColor = Color.Transparent,
186 };
187
188 _headerLabel = new Label
189 {
190 Text = _header,
191 ForeColor = DreamineTheme.TextPrimary,
192 Font = new Font("Segoe UI", 10f, FontStyle.Bold, GraphicsUnit.Point),
193 AutoSize = false,
194 Dock = DockStyle.Fill,
195 TextAlign = ContentAlignment.MiddleLeft,
196 Padding = new Padding(4, 0, 0, 0),
197 BackColor = Color.Transparent,
198 };
199
200 _headerPanel.Controls.Add(_headerLabel);
201 _headerPanel.Controls.Add(_arrowLabel);
202
203 _headerPanel.Click += OnHeaderClick;
204 _headerLabel.Click += OnHeaderClick;
205 _arrowLabel.Click += OnHeaderClick;
206
207 // Content
208 _contentPanel = new Panel
209 {
210 Dock = DockStyle.Fill,
211 BackColor = DreamineTheme.CardBackground,
212 Padding = new Padding(8),
213 };
214
215 Controls.Add(_contentPanel);
216 Controls.Add(_headerPanel);
217
218 _expandedHeight = 120;
219 Height = HeaderHeight + _expandedHeight;
220 }

다음을 참조함 : _arrowLabel, _contentPanel, _expandedHeight, _header, _headerLabel, _headerPanel, Dreamine.UI.WinForms.DreamineTheme.CardBackground, HeaderHeight, OnHeaderClick(), Dreamine.UI.WinForms.DreamineTheme.TextPrimary, Dreamine.UI.WinForms.DreamineTheme.TextSecondary.

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

멤버 함수 문서화

◆ ApplyExpandState()

void Dreamine.UI.WinForms.Controls.DreamineExpander.ApplyExpandState ( )
inlineprivate

현재 확장 상태에 맞게 화살표, 콘텐츠 표시 및 컨트롤 높이를 적용합니다.

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

260 {
261 if (_isExpanded)
262 {
263 _arrowLabel.Text = "▼";
264 _contentPanel.Visible = true;
265 Height = HeaderHeight + _expandedHeight;
266 }
267 else
268 {
269 _arrowLabel.Text = "▶";
270 _expandedHeight = Height - HeaderHeight;
271 _contentPanel.Visible = false;
272 Height = HeaderHeight;
273 }
274 }

다음을 참조함 : _expandedHeight, _isExpanded, HeaderHeight.

◆ OnHeaderClick()

void Dreamine.UI.WinForms.Controls.DreamineExpander.OnHeaderClick ( object? s,
EventArgs e )
inlineprivate

머리글 클릭에 응답하여 확장 상태를 전환합니다.

매개변수
s이벤트를 발생시킨 머리글 요소입니다.
e이벤트 인수입니다.

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

247 {
248 IsExpanded = !IsExpanded;
249 }

다음을 참조함 : IsExpanded.

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

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

◆ OnPaint()

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

둥근 배경과 테두리 및 펼쳐진 머리글 구분선을 그립니다.

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

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

293 {
294 var g = e.Graphics;
295 var rect = new Rectangle(0, 0, Width - 1, Height - 1);
296 using var bgBrush = new SolidBrush(BackColor);
297 using var borderPen = new Pen(DreamineTheme.BorderNormal, 1f);
298 DreamineDrawHelper.FillRoundedRect(g, bgBrush, borderPen, rect, DreamineTheme.CornerRadius);
299
300 // Header separator line
301 if (_isExpanded)
302 {
303 using var divPen = new Pen(DreamineTheme.BorderNormal, 1f);
304 g.DrawLine(divPen, 0, HeaderHeight, Width, HeaderHeight);
305 }
306 }

다음을 참조함 : _isExpanded, Dreamine.UI.WinForms.DreamineTheme.BorderNormal, Dreamine.UI.WinForms.DreamineTheme.CornerRadius, Dreamine.UI.WinForms.DreamineDrawHelper.FillRoundedRect(), HeaderHeight.

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

멤버 데이터 문서화

◆ _arrowLabel

readonly Label Dreamine.UI.WinForms.Controls.DreamineExpander._arrowLabel
private

arrow Label 값을 보관합니다.

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

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

◆ _contentPanel

readonly Panel Dreamine.UI.WinForms.Controls.DreamineExpander._contentPanel
private

content Panel 값을 보관합니다.

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

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

◆ _expandedHeight

int Dreamine.UI.WinForms.Controls.DreamineExpander._expandedHeight
private

expanded Height 값을 보관합니다.

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

다음에 의해서 참조됨 : ApplyExpandState(), DreamineExpander().

◆ _header

string Dreamine.UI.WinForms.Controls.DreamineExpander._header = string.Empty
private

header 값을 보관합니다.

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

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

◆ _headerLabel

readonly Label Dreamine.UI.WinForms.Controls.DreamineExpander._headerLabel
private

header Label 값을 보관합니다.

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

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

◆ _headerPanel

readonly Panel Dreamine.UI.WinForms.Controls.DreamineExpander._headerPanel
private

header Panel 값을 보관합니다.

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

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

◆ _isExpanded

bool Dreamine.UI.WinForms.Controls.DreamineExpander._isExpanded = true
private

is Expanded 값을 보관합니다.

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

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

◆ HeaderHeight

const int Dreamine.UI.WinForms.Controls.DreamineExpander.HeaderHeight = 36
staticprivate

Header Height 값을 보관합니다.

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

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

속성 문서화

◆ Content

Panel Dreamine.UI.WinForms.Controls.DreamineExpander.Content
get

호출자가 자식 컨트롤을 추가할 내부 콘텐츠 패널을 가져옵니다.

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

◆ DefaultSize

override Size Dreamine.UI.WinForms.Controls.DreamineExpander.DefaultSize
getprotected

확장 컨트롤의 기본 크기를 가져옵니다.

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

◆ Header

string Dreamine.UI.WinForms.Controls.DreamineExpander.Header
getset

머리글에 표시할 텍스트를 가져오거나 설정합니다.

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

92 {
93 get => _header;
94 set { _header = value; _headerLabel.Text = value; }
95 }

◆ IsExpanded

bool Dreamine.UI.WinForms.Controls.DreamineExpander.IsExpanded
getset

콘텐츠 패널이 펼쳐져 있는지 여부를 가져오거나 설정합니다.

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

115 {
116 get => _isExpanded;
117 set
118 {
119 if (_isExpanded == value) return;
120 _isExpanded = value;
121 ApplyExpandState();
122 ExpandedChanged?.Invoke(this, EventArgs.Empty);
123 }
124 }

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

이벤트 문서화

◆ ExpandedChanged

EventHandler? Dreamine.UI.WinForms.Controls.DreamineExpander.ExpandedChanged

확장 상태가 실제로 변경될 때 발생합니다.

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


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