Tải bản đầy đủ (.pdf) (33 trang)

Giáo trình C winform GUI

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (216.63 KB, 33 trang )

L p trình trên môi tr ng Windowsậ ườ
GDI+
Tr n Duy Hoàngầ


N i dungộ

Gi i thi u GDI+ớ ệ

Đ i t ng Graphicố ượ

Các hàm vẽ

Các hàm tô màu

Pen

Brush

Invalidate

T o form có hình ạ
d ng b t kỳạ ấ

K thu t ch ng flickerỹ ậ ố

Gi i thi u GDI+ớ ệ

Th c hi n v trên môi tr ng .NETự ệ ẽ ườ

Cung c p t p namespace, l p h ng đ i t ng ấ ậ ớ ướ ố ượ


l n cho vi c th c hi n vớ ệ ự ệ ẽ

Device Context đ c thay th b ng đ i t ng ượ ế ằ ố ượ
Graphic

M i control đ u có đ i t ng Graphic đ v nó, ỗ ề ố ượ ể ẽ
bao g m Form, Button, TextBox, …. ồ

Các namespace
Tên Mô tả
System.Drawing Đ nh nghĩa nh ng đ i t ng v c b n ị ữ ố ượ ẽ ơ ả
(Fonts, Pens, Brushes, ) và đ i t ng ố ượ
Graphic
System.Drawing.Drawing2D Cung c p nh ng đ i t ng v vector 2 ấ ữ ố ượ ẽ
chi u nh gradient brushes, gradient ề ư
pens,
System.Drawing.Image Thao tác v i hình nh nh th c hi n v , ớ ả ư ự ệ ẽ
l y thông tin kích th c nh, …ấ ướ ả
System.Drawing.Printing Th c hi n in; cung c p nh ng đ i t ng ự ệ ấ ữ ố ượ
giao tác v i printerớ
System.Drawing.Text Th c hi n v v i các font.ự ệ ẽ ớ

Đ i t ng Graphicố ượ

Đ i t ng quan tr ng c a GDI+ố ượ ọ ủ

M i thao tác v đ u th c hi n trên đ i t ng ọ ẽ ề ự ệ ố ượ
Graphic

M i control đ u có thu c tính Graphic dùng đ ọ ề ộ ể

v chính nóẽ

Có 2 cách truy xu tấ

S ki n Paint : e.Graphics.DrawLine( )ự ệ

Hàm CreateGraphic() nh v s m t đi khi Form ả ẽ ẽ ấ
đ c Reload ượ

Đ i t ng Graphicố ượ

Ví dụ
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawRectangle(Pens.Blue, 10, 10, 100, 100);
}

Đ i t ng Graphicố ượ

Danh sách các hàm vẽ
Hàm Ý nghĩa
DrawArc V hình cung ellipseẽ
DrawEllipse V hình ellipseẽ
DrawLine V đ ng th ngẽ ườ ẳ
DrawPolygon V đa giácẽ
DrawRectangle V hình ch nh tẽ ữ ậ
DrawString V chu iẽ ổ
DrawImage V hình nhẽ ả

Đ i t ng Graphicố ượ


Ví d :ụ
// t o bút vạ ẽ
Pen pen = new Pen(Color.Blue, 2);
// v đ ng t đi m 0, 0 đ n 100, 100ẽ ườ ừ ể ế
e.Graphics.DrawLine(pen, 0, 0, 100, 100);

Đ i t ng Graphicố ượ

Ví d :ụ
// t o bút vạ ẽ
Pen pen = new Pen(Color.Blue, 2);
// v hình ellipse n m trong hình ch nh tẽ ằ ữ ậ
// t đi m 0,0 có đ r ng 300, cao 200ừ ể ộ ộ
e.Graphics.DrawEllipse(pen, 0, 0, 300, 200);

Đ i t ng Graphicố ượ

Ví d :ụ
// t o bút vạ ẽ
Pen pen = new Pen(Color.Blue, 2);
// v cung ellipse n m trong hình ch nh tẽ ằ ữ ậ
// t đi m 0,0 có đ r ng 300, cao 200ừ ể ộ ộ
// v t góc 90 đ v ti p 180 đẽ ừ ộ ẽ ế ộ
e.Graphics.DrawArc(pen, 0, 0, 300, 200, 90, 180);

Đ i t ng Graphicố ượ

Ví d :ụ
// t o bút vạ ẽ

Pen pen = new Pen(Color.Blue, 2);
// v hình ch nh t t đi m 0,0 ẽ ữ ậ ừ ể
// có đ r ng 300, cao 200ộ ộ
e.Graphics.DrawRectangle(pen, 10, 10, 300, 200);

Đ i t ng Graphicố ượ

Ví d :ụ
// t o bút vạ ẽ
Pen pen = new Pen(Color.Blue, 2);
// v đa giác có 4 đ nh 10,10 100,180ẽ ỉ
// 200,180 và 200,10
Point[] polygon = new Point[4];
polygon[0] = new Point(10, 10);
polygon[1] = new Point(100, 180);
polygon[2] = new Point(200, 180);
polygon[3] = new Point(200, 10);
e.Graphics.DrawPolygon(pen, polygon);

Đ i t ng Graphicố ượ

Ví d :ụ
// t o bút vạ ẽ
Pen pen = new Pen(Color.Blue, 2);
// v hình bánh n m trong hình ch nh tẽ ằ ữ ậ
// t đi m 0,0 có đ r ng 300, cao 200ừ ể ộ ộ
// v t góc 0 đ v ti p 90 đẽ ừ ộ ẽ ế ộ
e.Graphics.DrawPie(pen, 0, 0, 300, 200, 0, 90);

Đ i t ng Graphicố ượ


Ví d :ụ
// t o bút vạ ẽ
Pen pen = new Pen(Color.Blue, 2);
// t o các đi m c a đ ng congạ ể ủ ườ
Point start = new Point(100, 100);
Point control1 = new Point(200, 50);
Point control2 = new Point(350, 100);
Point end = new Point(100, 300);
// v đ ng congẽ ườ
e.Graphics.DrawBezier(pen, start, control1, control2, end);

Đ i t ng Graphicố ượ

Ví d :ụ
// v chu i t i v trí 0,0ẽ ỗ ạ ị
string text = "Hello world";
Font font = new Font("Arial", 16);
e.Graphics.DrawString(text, font, Brushes.Blue, 0, 0);
// v hình t i v trí 50,50ẽ ạ ị
Bitmap image = new Bitmap("images/image1.jpg");
e.Graphics.DrawImage(image, 50, 50);

Đ i t ng Graphicố ượ

Danh sách các hàm tô màu
Hàm Ý nghĩa
FillEllipse Tô hình ellipse
FillPie Tô hình bánh
FillPolygon Tô đa giác

FillRectangle Tô hình ch nh tữ ậ

Đ i t ng Graphicố ượ

Ví d :ụ
// Create solid brush.
SolidBrush blueBrush = new SolidBrush(Color.Blue);
// Fill rectangle to screen.
e.Graphics.FillRectangle(blueBrush, 0, 0, 200, 200);

Pen

Dùng Pen có s n thông qua Pensẵ

Pens.AliceBlue

Pens.Aqua

Pens.Black

Pens.Brown



Dùng Pen do t t o thông qua l p Penự ạ ớ
Pen pen = new Pen (Color.Red, 2)

Brush

Dùng Brush t cóự


Brushes.Lavendar

Brushes.Ivory

Brushes.LightBlue

TextureBrush: dùng nh image đ vả ể ẽ

SolidBrush:T o c v i màu đ n s cạ ọ ớ ơ ắ

Brush

Ví d : TextureBrushụ
Bitmap image = new Bitmap("images/image1.jpg");
TextureBrush texture = new TextureBrush(image);
e.Graphics.FillEllipse(texture, 100, 100, 400, 200);

Invalidate

Hành đ ng Invalidate dùng đ th c hi n v l i ộ ể ự ệ ẽ ạ
Form ho c 1 vùng nào đó trên Form.ặ

S d ng hàm : Invalidateử ụ
private void timer1_Tick(object sender, EventArgs e)
{
this.Invalidate();
}

T o form có hình d ng b t kỳạ ạ ấ


Thu c tính Region : xác đ nh vùng hi n th c a ộ ị ể ị ủ
form

L p GraphicsPath : dùng đ t o đ ng biên ớ ể ạ ườ
cho vùng hi n th c a formể ị ủ

T o form có hình d ng b t kỳạ ạ ấ

Ví d :ụ
// trong s kiên form load ự
// t o biên cho form có hình ellipse ạ
GraphicsPath path = new GraphicsPath();
path.AddEllipse(0, 0, 300, 300);
// t o vùng hi n th c a form d a trên biênạ ể ị ủ ự
this.Region = new Region(path);

T o form có hình d ng b t kỳạ ạ ấ

T o form có hình d ng b t kỳạ ạ ấ

Ví d :ụ
// t o biên cho form ạ
GraphicsPath path = new GraphicsPath();
path.AddArc(0, 0, 300, 300, 0, 180);
path.AddLine(0, 150, 0, 0);
path.AddLine(0, 0, 300, 0);
path.AddLine(300, 0, 300, 150);
// t o vùng hi n th c a form d a trên biênạ ể ị ủ ự
this.Region = new Region(path);

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×