Dreamine.UI.WinForms
1.0.1
Dreamine.UI.WinForms 사용자 인터페이스 기능과 구성 요소를 제공합니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
DreamineTabControl.cs
이 파일의 문서화 페이지로 가기
1
using
System.Drawing;
2
using
System.Drawing.Drawing2D;
3
using
Dreamine.UI.WinForms
;
4
5
namespace
Dreamine.UI.WinForms.Controls
;
6
15
public
class
DreamineTabControl
: TabControl
16
{
25
public
DreamineTabControl
()
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
}
39
56
protected
override
void
OnPaint
(PaintEventArgs e)
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
}
82
99
protected
override
void
OnDrawItem
(DrawItemEventArgs e)
100
{
101
DrawTabItem
(e.Graphics, e.Index);
102
}
103
128
private
void
DrawTabItem
(Graphics g,
int
index)
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
}
163
180
protected
override
void
OnMouseMove
(MouseEventArgs e)
181
{
182
base.OnMouseMove(e);
183
Invalidate();
// 호버 갱신
184
}
185
201
protected
override
void
OnMouseLeave
(EventArgs e)
202
{
203
base.OnMouseLeave(e);
204
Invalidate();
205
}
206
}
Dreamine.UI.WinForms
Definition
DreamineButton.cs:6
Dreamine.UI.WinForms.Controls
Definition
DreamineButton.cs:6
Dreamine.UI.WinForms.Controls.DreamineTabControl.DrawTabItem
void DrawTabItem(Graphics g, int index)
Definition
DreamineTabControl.cs:128
Dreamine.UI.WinForms.Controls.DreamineTabControl.OnMouseLeave
override void OnMouseLeave(EventArgs e)
Definition
DreamineTabControl.cs:201
Dreamine.UI.WinForms.Controls.DreamineTabControl.OnDrawItem
override void OnDrawItem(DrawItemEventArgs e)
Definition
DreamineTabControl.cs:99
Dreamine.UI.WinForms.Controls.DreamineTabControl.DreamineTabControl
DreamineTabControl()
Definition
DreamineTabControl.cs:25
Dreamine.UI.WinForms.Controls.DreamineTabControl.OnPaint
override void OnPaint(PaintEventArgs e)
Definition
DreamineTabControl.cs:56
Dreamine.UI.WinForms.Controls.DreamineTabControl.OnMouseMove
override void OnMouseMove(MouseEventArgs e)
Definition
DreamineTabControl.cs:180
Dreamine.UI.WinForms.DreamineTheme
Definition
DreamineTheme.cs:14
Dreamine.UI.WinForms.DreamineTheme.TextSecondary
static readonly Color TextSecondary
Definition
DreamineTheme.cs:100
Dreamine.UI.WinForms.DreamineTheme.AppBackground
static readonly Color AppBackground
Definition
DreamineTheme.cs:24
Dreamine.UI.WinForms.DreamineTheme.TextPrimary
static readonly Color TextPrimary
Definition
DreamineTheme.cs:91
Dreamine.UI.WinForms.DreamineTheme.BorderNormal
static readonly Color BorderNormal
Definition
DreamineTheme.cs:71
Dreamine.UI.WinForms.DreamineTheme.AccentBlue
static readonly Color AccentBlue
Definition
DreamineTheme.cs:129
Dreamine.UI.WinForms.DreamineTheme.BarBackground
static readonly Color BarBackground
Definition
DreamineTheme.cs:60
Controls
DreamineTabControl.cs
다음에 의해 생성됨 :
1.17.0