292
Chương 8: Đồ họa, đa phương tiện, và in ấn
Ví dụ sau đây sẽ tạo một
Rectangle
và một
GraphicsPath
. Theo mặc định, hai shape này có
nền màu xanh nhạt. Tuy nhiên, phương thức thụ lý sự kiện
Form.MouseMove
sẽ kiểm tra xem
con trỏ chuột có nằm trong một trong hai shape này hay không, và cập nhật màu nền thành
hồng tươi nếu con trỏ ở đó.
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
public class HitTesting : System.Windows.Forms.Form {
// (Bỏ qua phần mã designer.)
// Định nghĩa các shape sẽ được sử dụng.
private GraphicsPath path;
private Rectangle rectangle;
// Định nghĩa các cờ để theo vết con trỏ chuột.
private bool inPath = false;
private bool inRectangle = false;
// Định nghĩa các bút vẽ.
Brush highlightBrush = Brushes.HotPink;
Brush defaultBrush = Brushes.LightBlue;
private void HitTesting_Load(object sender, System.EventArgs e) {
// Tạo các shape.
path = new GraphicsPath();
path.AddEllipse(10, 10, 100, 60);
path.AddCurve(new Point[] {new Point(50, 50),
new Point(10,33), new Point(80,43)});
path.AddLine(50, 120, 250, 80);
path.AddLine(120, 40, 110, 50);
path.CloseFigure();