2011-10-05 32 views
5

Cách tốt nhất để quản lý một lượng lớn hình ảnh (10.000+) trong WPF là gì? Điều này dành cho trình chỉnh sửa bản đồ 2d tương tự như sau: http://www.mapeditor.org/.Các vấn đề với việc hiển thị bản đồ lát lớn trong WPF

Hiện tại tôi có canvas với tất cả các ô như hình ảnh và hộp danh sách chứa các hình ảnh khác nhau để chọn. Mỗi ô được thêm vào canvas là trẻ em và sau đó được lưu trữ trong danh sách để truy cập sau này. Bạn vẽ vào canvas bằng cách thiết lập thuộc tính Source của một tile thành tile được chọn trong listbox. Nó hoạt động tốt với khoảng 50x50 bản đồ ngói nhưng bất cứ điều gì ở trên gây ra sự chậm trễ tải, trong ứng dụng chậm nói chung.

Bất kỳ đề xuất nào về điều này? QT sẽ có thể phù hợp hơn thay vì wpf?

Cảm ơn trước

Trả lời

6

Kiểm tra Implementing virtualized panel loạt bài viết.

tấm Ảo hóa có hiệu quả, bởi vì:

  • Chỉ các yếu tố hiển thị (và một vài phụ xung quanh biên giới để cho phép di chuyển mượt mà) đang trong bộ nhớ (và render).

  • Các phần tử được sử dụng lại, thay vì được tạo và loại bỏ nhiều lần - một ô cũ chỉ được điền nội dung mới (được cung cấp với DataContext mới) và được sử dụng ở vị trí mới.

Bạn cũng có thể thử sử dụng DataGrid của WPF cho điều này, nó hỗ trợ ảo hóa ra khỏi hộp và về cơ bản bạn đang cố gắng làm gì.

WPF chắc chắn có thể làm điều này, nếu được triển khai đúng (nếu bạn có thể làm điều đó trong JavaScript, bạn chắc chắn có thể làm điều đó trong WPF).

Các vấn đề liên quan