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

Tuan08 c net winform p3

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 (1.31 MB, 17 trang )

10/24/2018

Lập trình Ứng dụng quản lý
C#.NET
WinForm (tt)

Nội dung
 XML cơ bản

 GDI+
 Custom Controls

1


10/24/2018

Nội dung
 XML cơ bản
 GDI+
 Custom Controls

Cấu trúc file xml
 Dựa trên ngôn ngữ đánh dấu (Markup Language)

 Chỉ chứa duy nhất 1 nút (node) bao quát tất cả

gọi là nút gốc (node root)

2



10/24/2018

Cách thức lưu trữ thông tin
 Mỗi node chứa thông tin dựa vào thuộc tính

(attribute) hoặc text con (inner text)
 Thường sử dụng attribute để lưu các thông tin
ngắn gọn, đặc trưng,… cịn inner text lưu các
thơng tin dài

Phân tích dữ liệu XML
 Dữ liệu trong XML có thể được phân tích dựa trên

nhiều mơ hình khác nhau
 Mơ hình tún tính (Linear): theo mơ hình này dữ liệu

được duyệt theo dạng đường thẳng, mơ hình chỉ phù
hợp với các dạng dữ liệu tĩnh khơng có sự thay đởi. Ví
dụ như ta muốn tìm thơng tin trong 1 cuốn sách trong
thư viện chúng ta bắt đầu từ chủ đề của sách, đến tên
sách, đến trang thứ mấy của sách và dòng thứ mấy. Tuy
nhiên nếu cuốn sách đó được tái bản hay chuyển sang
dạng khác thì mơ hình này khơng cịn thích hợp.
 Mơ hình cây (Tree Model): như chúng ta đã biết XML
có dạng cấu trúc phân cấp vì thế chúng ta có thể biểu
diễn dữ liệu trong XML theo cấu trúc cây. Cấu trúc này
có ưu điểm là chúng ta có thể xác định được các mối
quan hệ giữa các phần tử với nhau.


3


10/24/2018

Mơ hình đối tượng XML
 Mơ hình đới tượng: Mơ hình đối tượng XML là tập hợp các

đối tượng dùng để truy xuất và thao tác với các dữ liệu trong
XML. Trong mơ hình này dữ liệu cũng được tở chức thành
dạng cấu trúc cây cùng với các nút. Các đối tượng có nhiều
thuộc tính và phương thức để chúng ta có thể quét cấu trúc
cây XML và các phần tử trong cây.

Đọc ghi xml
 .NET hỗ trợ nhiều cách đọc ghi xml (DOM,

XmlReader, XmlWriter,…)
 Sử dụng cách đọc ghi theo xml DOM dễ dàng
duyệt ngẫu nhiên một node bất kỳ
 Trong cấu trúc DOM thì: root là document node,
các thẻ là element node, thuộc tính là attribute
node, inner text là text node,…

4


10/24/2018

Ví dụ DOM


Các thao tác
 Bắt đầu với đối tượng XmlDocument (lấy ngun

nội dung xml và parse sang mơ hình xml DOM
lưu trong bộ nhớ).

 Lấy node root

XmlNode nodeRoot = doc.DocumentElement;

5


10/24/2018

Các node con

Phương thức cơ bản
 Lưu ý XmlNode là lớp cơ sở của các dẫn xuất:

XmlElement, XmlAttribute, XmlText,…
 Các phương thức cơ bản

6


10/24/2018

Minh họa


Ví dụ lấy giá trị thuộc tính của 1 node

7


10/24/2018

Nội dung
 XML cơ bản
 GDI+
 Custom Controls

GDI+
 GDI: Graphical Device Interface

 GDI+ là API (Application programming interface)

cung cấp các lớp cho phép
 Tạo những đồ họa 2D vector
 Thao tác trên font, chuỗi ký tự
 Hiển thị các đường, hình và ảnh…

 Thư viện FCL chứa các lớp thao tác vẽ trong

namespace System.Drawing
 Tất cả các thao tác tô vẽ trên GUI đều thực hiện
bởi chức năng GDI+

8



10/24/2018

Kiến trúc
System.Drawing
Font

Graphics

Color
Point
Rectangle

Icon

class

structure

Size

Pen
Region
HatchBrush
Image
Brush

LinearGradientBrush
PathGradientBrush


SolidBrush
TextureBrush

Graphics
 Class Graphics thể hiện
 “Abstract” drawing surface
 Tập hợp những “tool” cho phép thao tác trên

surface đó
 Để lấy đối tượng Graphics
 Sử dụng thuộc tính Graphics được truyền cho

OnPaint()
 Sử dụng phương thức CreateGraphics() của control
 Lấy từ đối tượng dẫn xuất từ Bitmap
 Gọi hàm Invalidate() thay vì OnPaint()

9


10/24/2018

Lấy đối tượng Graphics từ tham số
protected override void
OnPaint(PaintEventArgs paintevent)
{
Graphics graf=paintevent.Graphics;
}
Từ tham số

PaintEventAtgs
private void mainForm_Paint(object sender,
PaintEventArgs paintevent)
{
Graphics graf=paintevent.Graphics;
}

Lấy đối tượng Graphics từ control, image
private void PaintMe(Control testcontrol)
{
Graphics graf=testcontrol.CreateGraphics();
...
}
Lấy từ control
protected override void
OnPaint(PaintEventArgs paintevent)
{
Bitmap bmpimage=new Bitmap(1024,768);
Graphics graf = Graphics.FromImage
(bmpimage);
...
Lấy từ ảnh
}

10


10/24/2018

Pen

 Pen
 Xác định width, style, fill style
 Không cho kế thừa, nhưng tạo thể hiện được
 Trong namespace System.Drawing
 Pen p1 = new Pen(Color.Green);
Pen p2 = new Pen(Color.blue, 10);
 Sử dụng lớp Pens có 141 pen được định nghĩa

trước.
 Pen p3 = Pens.Violet;

Brush
 Brush
 Dùng để tô vùng bên trong của hình
 Class Brush là class abstract nên khơng tạo thể

hiện
 Sử dụng các lớp kế thừa sau để tạo brush
 SolidBrush
 LinearGradientBrush
 TextureBrush
 HatchBrush

 Sử dụng lớp Brushes định nghĩa trước các brush.

11


10/24/2018


Vẽ, tô cơ bản
 Các phương thức vẽ cơ bản
 DrawString
 DrawLine
 DrawRectangle

 DrawEllipse
 DrawImage
…

 Các phương thức tô cơ bản
 FillRectangle
 FillEllipse
…

Tọa độ
 Tọa độ hệ thống

Gốc tọa độ

(0,0)

(w,0)
(0,0)

Form,
Panel,
GroupBox,
File Bitmap
….


(0,h1)

(0,h)

(w1,0)

Control
(w1,h1)

(w,h)

12


10/24/2018

Ví dụ
 Ví dụ cơ bản
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawString("Hello GDI!", Font, Brushes.Red, 20, 20);
}

}

Ví dụ (tt)
 Ví dụ cơ bản

13


10/24/2018

Ví dụ (tt)
 Ví dụ cơ bản

Ví dụ (tt)
 Ví dụ cơ bản

14


10/24/2018

Ví dụ (tt)
 Ví dụ cơ bản
Solid

Hatch

LinearGradient

Texture


Ví dụ (tt)
 Ví dụ cơ bản

15


10/24/2018

Ví dụ (tt)
 Ví dụ cơ bản

Ellipse được vẽ lên ảnh, rồi sau
đó với vẽ ảnh lên Form

Nội dung
 XML cơ bản

 GDI+
 Custom Controls

16


10/24/2018

Custom Controls
 User Controls (Composite)
 ProgressBar có status


 Derived Controls
 TextBox chỉ cho nhập số

 ListBox cuộn đến cuối

 Owner-Drawn Controls
 ListBox, ComboBox
 ListView, TreeView
 ToolTip
 MenuItem

 New Control
 Dẫn xuất trực tiếp từ Control

Bài tập
 Tạo custom TextBox cho phép nhập số thực.

 Tạo custom ProgressBar có hiển thị trạng thái.
 Tạo custom ListBox cho phép hiển thị màu tùy

chỉnh.

17



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

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