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

더 자세히 ...

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

Public 멤버 함수

 DreamineCheckLed ()

Protected 멤버 함수

override void Dispose (bool disposing)
override void OnPaint (PaintEventArgs e)

속성

bool IsOn [get, set]
bool IsPulse [get, set]
LedCorner Corner [get, set]
float Diameter [get, set]

Private 멤버 함수

void StartPulse ()
void StopPulse ()
void OnPulseTick (object? s, EventArgs e)

Private 속성

System.Windows.Forms.? Timer _pulseTimer
float _pulseAlpha = 1f
bool _pulseUp = false
bool _isOn = true
bool _isPulse
LedCorner _corner = LedCorner.TopRight
float _diameter = 16f

상세한 설명

켜짐, 맥동, 지름 및 모서리 배치를 지원하는 Dreamine WinForms LED 표시 컨트롤입니다.

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

생성자 & 소멸자 문서화

◆ DreamineCheckLed()

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

사용자 지정 그리기 스타일과 기본 LED 크기를 구성합니다.

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

154 {
155 SetStyle(
156 ControlStyles.AllPaintingInWmPaint |
157 ControlStyles.UserPaint |
158 ControlStyles.DoubleBuffer |
159 ControlStyles.ResizeRedraw |
160 ControlStyles.SupportsTransparentBackColor, true);
161
162 BackColor = Color.Transparent;
163 Size = new Size(24, 24);
164 }

멤버 함수 문서화

◆ Dispose()

override void Dreamine.UI.WinForms.Controls.DreamineCheckLed.Dispose ( bool disposing)
inlineprotected

맥동 타이머를 해제한 뒤 기본 컨트롤 리소스를 해제합니다.

매개변수
disposing관리되는 리소스도 해제하면 true입니다.

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

253 {
254 if (disposing) { _pulseTimer?.Dispose(); _pulseTimer = null; }
255 base.Dispose(disposing);
256 }

다음을 참조함 : _pulseTimer.

◆ OnPaint()

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

현재 켜짐, 맥동 및 모서리 상태에 맞게 LED 광택과 링을 그립니다.

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

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

276 {
277 var g = e.Graphics;
278 g.SmoothingMode = SmoothingMode.AntiAlias;
279
280 float d = _diameter;
281 float x, y;
282
283 switch (_corner)
284 {
285 case LedCorner.TopLeft: x = 0; y = 0; break;
286 case LedCorner.TopRight: x = Width - d; y = 0; break;
287 case LedCorner.BottomLeft: x = 0; y = Height - d; break;
288 case LedCorner.BottomRight: x = Width - d; y = Height - d; break;
289 default: x = (Width - d)/2; y = (Height - d)/2; break;
290 }
291
292 var ledRect = new RectangleF(x, y, d, d);
293
294 if (_isOn)
295 {
296 float alpha = _isPulse ? _pulseAlpha : 1f;
297
298 // Outer glow ring
299 float glowD = d + 4;
300 var glowRect = new RectangleF(x - 2, y - 2, glowD, glowD);
301 using var glowBrush = new PathGradientBrush(DreamineDrawHelper.RoundedRect(glowRect, glowD / 2))
302 {
303 CenterColor = Color.FromArgb((int)(80 * alpha), DreamineTheme.LedOnOuter),
304 SurroundColors = new[] { Color.FromArgb(0, DreamineTheme.LedOnOuter) }
305 };
306 g.FillEllipse(glowBrush, glowRect);
307
308 // Outer ring
309 using var outerBrush = new PathGradientBrush(DreamineDrawHelper.RoundedRect(ledRect, d / 2))
310 {
311 CenterColor = Color.FromArgb((int)(220 * alpha), DreamineTheme.LedOnInner),
312 SurroundColors = new[] { Color.FromArgb((int)(160 * alpha), DreamineTheme.LedOnOuter) }
313 };
314 g.FillEllipse(outerBrush, ledRect);
315
316 // Inner highlight
317 float innerD = d * 0.45f;
318 float innerX = x + (d - innerD) / 2, innerY = y + (d - innerD) / 2;
319 using var innerBrush = new SolidBrush(Color.FromArgb((int)(120 * alpha), Color.White));
320 g.FillEllipse(innerBrush, innerX, innerY, innerD, innerD);
321 }
322 else
323 {
324 // Off: dim ring only
325 using var ringPen = new Pen(Color.FromArgb(80, DreamineTheme.LedOnOuter), 1.5f);
326 g.DrawEllipse(ringPen, ledRect.X, ledRect.Y, ledRect.Width - 1, ledRect.Height - 1);
327 using var centerBrush = new SolidBrush(Color.FromArgb(30, DreamineTheme.CardBackground));
328 g.FillEllipse(centerBrush, ledRect);
329 }
330 }

다음을 참조함 : _corner, _diameter, _isOn, _isPulse, _pulseAlpha, Dreamine.UI.WinForms.DreamineTheme.CardBackground, Dreamine.UI.WinForms.DreamineTheme.LedOnInner, Dreamine.UI.WinForms.DreamineTheme.LedOnOuter, Dreamine.UI.WinForms.DreamineDrawHelper.RoundedRect().

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

◆ OnPulseTick()

void Dreamine.UI.WinForms.Controls.DreamineCheckLed.OnPulseTick ( object? s,
EventArgs e )
inlineprivate

타이머 틱마다 맥동 불투명도와 방향을 갱신합니다.

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

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

229 {
230 _pulseAlpha += _pulseUp ? 0.06f : -0.06f;
231 if (_pulseAlpha >= 1f) { _pulseAlpha = 1f; _pulseUp = false; }
232 if (_pulseAlpha <= 0.2f) { _pulseAlpha = 0.2f; _pulseUp = true; }
233 Invalidate();
234 }

다음을 참조함 : _pulseAlpha, _pulseUp.

다음에 의해서 참조됨 : StartPulse(), StopPulse().

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

◆ StartPulse()

void Dreamine.UI.WinForms.Controls.DreamineCheckLed.StartPulse ( )
inlineprivate

맥동 타이머를 만들거나 다시 시작합니다.

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

176 {
177 if (_pulseTimer == null)
178 {
179 _pulseTimer = new System.Windows.Forms.Timer { Interval = 40 };
180 _pulseTimer.Tick += OnPulseTick;
181 }
182 _pulseTimer.Start();
183 }

다음을 참조함 : _pulseTimer, OnPulseTick().

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

◆ StopPulse()

void Dreamine.UI.WinForms.Controls.DreamineCheckLed.StopPulse ( )
inlineprivate

맥동 타이머를 중지하고 불투명도를 초기 상태로 복원합니다.

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

194 {
195 if (_pulseTimer != null)
196 {
197 _pulseTimer.Stop();
198 _pulseTimer.Tick -= OnPulseTick;
199 }
200 _pulseAlpha = 1f;
201 Invalidate();
202 }

다음을 참조함 : _pulseAlpha, _pulseTimer, OnPulseTick().

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

멤버 데이터 문서화

◆ _corner

LedCorner Dreamine.UI.WinForms.Controls.DreamineCheckLed._corner = LedCorner.TopRight
private

corner 값을 보관합니다.

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

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

◆ _diameter

float Dreamine.UI.WinForms.Controls.DreamineCheckLed._diameter = 16f
private

diameter 값을 보관합니다.

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

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

◆ _isOn

bool Dreamine.UI.WinForms.Controls.DreamineCheckLed._isOn = true
private

is On 값을 보관합니다.

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

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

◆ _isPulse

bool Dreamine.UI.WinForms.Controls.DreamineCheckLed._isPulse
private

is Pulse 값을 보관합니다.

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

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

◆ _pulseAlpha

float Dreamine.UI.WinForms.Controls.DreamineCheckLed._pulseAlpha = 1f
private

pulse Alpha 값을 보관합니다.

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

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

◆ _pulseTimer

System.Windows.Forms.? Timer Dreamine.UI.WinForms.Controls.DreamineCheckLed._pulseTimer
private

pulse Timer 값을 보관합니다.

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

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

◆ _pulseUp

bool Dreamine.UI.WinForms.Controls.DreamineCheckLed._pulseUp = false
private

pulse Up 값을 보관합니다.

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

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

속성 문서화

◆ Corner

LedCorner Dreamine.UI.WinForms.Controls.DreamineCheckLed.Corner
getset

컨트롤 영역에서 LED를 그릴 모서리를 가져오거나 설정합니다.

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

116 {
117 get => _corner;
118 set { _corner = value; Invalidate(); }
119 }

◆ Diameter

float Dreamine.UI.WinForms.Controls.DreamineCheckLed.Diameter
getset

LED 원의 지름을 가져오거나 설정합니다.

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

139 {
140 get => _diameter;
141 set { _diameter = value; Invalidate(); }
142 }

◆ IsOn

bool Dreamine.UI.WinForms.Controls.DreamineCheckLed.IsOn
getset

LED가 켜져 있는지 여부를 가져오거나 설정합니다.

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

64 {
65 get => _isOn;
66 set { _isOn = value; Invalidate(); }
67 }

◆ IsPulse

bool Dreamine.UI.WinForms.Controls.DreamineCheckLed.IsPulse
getset

불투명도 맥동 애니메이션을 사용할지 여부를 가져오거나 설정합니다.

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

87 {
88 get => _isPulse;
89 set
90 {
91 _isPulse = value;
92 if (value) StartPulse();
93 else StopPulse();
94 Invalidate();
95 }
96 }

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