일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- string
- Redshift
- 파이썬
- Mac
- PANDAS
- Excel
- Google Spreadsheet
- matplotlib
- django
- list
- google apps script
- Apache
- SQL
- PostgreSQL
- GIT
- Github
- array
- Java
- dataframe
- gas
- numpy
- PySpark
- hive
- math
- c#
- Python
- Google Excel
- Tkinter
- Kotlin
- Today
- Total
달나라 노트
C# : DrawString (글씨 그리기) 본문
DrawString은 글씨를 그려줍니다.
Window에 글씨를 띄워주기 위해선 Label을 이용하는 방법도 있지만 DrawString method를 이용하는 방법도 있습니다.
두 방법의 차이점은
Label은 마치 텍스트 박스에 글자를 담아서 나타내주는 것이라면
DrawString은 이미지처럼 글자를 그려주는 방식입니다.
Syntax
DrawString(Text, font, brush, x, y)
사용 방법은 위와 같습니다.
- Text
DrawString으로 적을 문자입니다.
- font
Font 객체를 전달합니다.
Font 객체는 다음과 같이 사용할 수 있습니다.
Font(글씨체, 글씨크기)
- brush
Brush 객체를 전달합니다.
Brush 객체는 그려질 글씨의 색상정보를 담게됩니다.
- x, y
글자의 x, y 좌표입니다.
주의할 것은 글자 중앙을 기준으로 하는게 아니라 글자를 담는 사각형의 왼쪽 상당 꼭지점 좌표를 기준으로 합니다.
using System;
using System.Windows.Forms;
using System.Drawing;
class CardCatch
{
public static void Main()
{
Form fm = new Form();
fm.ClientSize = new Size(300, 300);
void fm_paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawString("Apple", new Font("Arial", 20), new SolidBrush(Color.Gray), 0, 0);
}
fm.Paint += new PaintEventHandler(fm_paint);
Application.Run(fm);
}
}
- g.DrawString("Apple", new Font("Arial", 20), new SolidBrush(Color.Gray), 0, 0);
DrawString의 사용 예시입니다.
각 인자별 의미를 봅시다.
- "Apple"
표시될 텍스트입니다.
- new Font("Arial", 20)
텍스트의 font입니다.
Arial 글씨체이며 글씨 크기는 20이라는 의미입니다.
- new SolidBrush(Color.Gray)
Bruch 객체입니다.
인자로 Color.Gray가 전달되었으니 회색 Brush입니다. 따라서 글씨의 색상도 회색으로 나타내질 겁니다.
- 0, 0
글씨의 x, y 좌표입니다.
코드의 실행 결과입니다.
위에서 설명했던 대로 글씨 크기 20, Arial 글씨체인 회색 Apple이라는 글씨가 그려졌습니다.
using System;
using System.Windows.Forms;
using System.Drawing;
class CardCatch
{
public static void Main()
{
Form fm = new Form();
fm.Width = 500;
fm.Height = 500;
PictureBox pb = new PictureBox();
pb.Parent = fm;
pb.Width = 300;
pb.Height = 300;
pb.Location = new Point(0, 0);
void fm_paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawString("Apple", new Font("Arial", 20), new SolidBrush(Color.Gray), 0, 0);
}
pb.Paint += new PaintEventHandler(fm_paint);
Application.Run(fm);
}
}
void fm_paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawString("Apple", new Font("Arial", 20), new SolidBrush(Color.Gray), 0, 0);
}
pb.Paint += new PaintEventHandler(fm_paint);
위 예시처럼 Graphic event를 PictureBox에도 등록할 수 있습니다.
using System;
using System.Windows.Forms;
using System.Drawing;
class CardCatch
{
public static void Main()
{
Form fm = new Form();
fm.Width = 500;
fm.Height = 500;
PictureBox pb = new PictureBox();
pb.Parent = fm;
pb.Width = 300;
pb.Height = 300;
pb.Location = new Point(50, 100);
void fm_paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawString("Apple", new Font("Arial", 20), new SolidBrush(Color.Gray), 0, 0);
}
pb.Paint += new PaintEventHandler(fm_paint);
Application.Run(fm);
}
}
주의할 점은 DrawString이 PictureBox에 속할 경우 그려지는 문자의 x, y 좌표는 Window 전체를 기준으로 한 x, y좌표가 아니라 PictureBox의 좌측 상단을 (0, 0)으로 간주한 좌표를 따르게 된다는 것입니다.
'C# > C#' 카테고리의 다른 글
C# : MaximizeBox, MinimizeBox (Window 최대화 최소화 on off) (0) | 2022.05.24 |
---|---|
C# : MeasureString (DrawString에서 문자의 크기 얻기) (0) | 2022.05.23 |
C# : FillPie (부채꼴 그리기) (0) | 2022.05.18 |
C# : FillEllipse (채워진 타원 그리기) (0) | 2022.05.18 |
C# : break, continue, pass (0) | 2022.05.10 |