Làm sao để tạo 1 bản vẽ đơn giản trong WPF?

Các bác cho e hỏi dùng thư viện gì để vẽ được 1 bản vẽ đơn giản như trong hình dưới đây, chỉ gồm các điểm nút và đường thẳng, độ dài đường thẳng. Mục đích có thể lưu lại bản vẽ và mở lại khi cần. Phần liên quan đến đồ họa e còn gà mờ quá :sweat_smile:

Có liên quan gì đến WPF đâu ?

ò thì e cũng ko rõ mà :joy: ý e hỏi là làm như thế nào ý bác :frowning:

  1. để lưu file và đọc file thì phải xác định cấu trúc dữ lieu trong file. Lúc lưu thì lưu đúng cấu trúc, đọc thì từ cấu trúc giải mã ra. Ví dụ tạo 1 class cấu trúc dữ lieu trong file:
[Serializable]
public class FileData{
    public List<Point> Points=new List<Point>();
    public List<Line> Lines=new List<Line>();
}

Rồi dùng BinaryFormat (System.Runtime.Serialization.Formatter.BinaryFormat) để Serialize class dữ lieu xuống file hoặc Deserialize file ngược lại thành dữ lieu.
2. Có dữ lieu rồi thì dùng Graphics để vẽ nó lên 1 Bitmap (System.Drawing).
3. Sau khi vẽ xong lên Bitmap thì Lockbits để lấy thông tin ảnh (Scan0,stride, totalbytes) rồi đẩy dữ lieu ảnh vào 1 WriteableBitmap (System.Windows.Media.Imaging).
4. Hiển thị WriteableBitmap lên Window thông qua Control Image.

2 Likes

Thank pro. E sẽ nghiên cứu :heart_eyes:

1 Like

Theo e nghiên cứu thì như của bác là “code” sẵn ra ảnh thì phải. Ý e làm vẽ trực tiếp trên control xaml giống paint ấy bác. có thể tùy ý điều chỉnh tọa độ các điểm nút nữa :joy:

Code sẵn ra ảnh là ntn nhỉ ?
Vẽ trực tiếp lên control cũng được nhưng không ra gì đâu.

Tks bác đã tư vấn. E làm xong rồi :sweat_smile: vẽ trực tiếp lên canvas :grin:

Làm thêm chức năng Zoom cho máu :slight_smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?