Các giải pháp lập trình CSharp- P41: Các giải pháp lập trình C# khảo sát chiều rộng của thư viện lớp .NET Framework và cung cấp giải pháp cụ thể cho các vấn đề thường gặp. Mỗi giải pháp được trình bày theo dạng “vấn đề/giải pháp” một cách ngắn gọn và kèm theo là các ví dụ mẫu. | 291 Chương 8 Đồ họa đa phương tiện và in ấn Hình Danh sách các font đã được cài đặt 2. Thực hiện hit testing với shape ỉ Bạn cần nhận biết người dùng có nhắp vào trong một shape hay không. Kiểm tra điểm mà người dùng đã nhắp vào bằng các phương thức như và thuộc không gian tên hoặc thuộc không gian tên tùy vào kiểu của shape. Thông thường nếu sử dụng GDI để vẽ shape trên form có thể bạn sẽ cần xác định xem khi nào người dùng nhắp vào trong một shape cho trước. .NET Framework cung cấp ba phương thức có thể thực hiện công việc này Phương thức nhận vào một điểm và trả về true nếu điểm này nằm bên trong hình chữ nhật cho trước. Trong nhiều trường hợp bạn có thể lấy được hình chữ nhật đối với một kiểu shape khác. Ví dụ bạn có thể sử dụng để lấy hình chữ nhật mô tả đường biên của shape. Cấu trúc Rectangle là thành viên của không gian tên . Phương thức nhận vào một điểm và trả về true nếu điểm này nằm bên trong một vùng được định nghĩa bởi GraphicsPath khép kín. Vì một GraphicsPath có thể chứa nhiều line shape và figure nên cách này rất hữu ích nếu bạn muốn kiểm tra một điểm có nằm bên trong một vùng không phải hình chữ nhật hay không. Lớp GraphicsPath là một thành viên của không gian tên . Phương thức nhận vào một điểm và trả về true nếu điểm này nằm bên trong một vùng được định nghĩa bởi Region. Cũng giống như GraphicsPath Region có thể mô tả một shape không phải hình chữ nhật. Region là một thành viên của không gian tên . 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 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ỏ