top of page
Tìm kiếm

WPF: DragDrop

Vào tháng 3 năm 2021, tôi có viết công cụ TaskTimer nhỏ để theo dõi tiến độ các công việc cần làm bằng C#, WPF. Mục tiêu của tôi khi làm TaskTimer không phải để cạnh tranh với các nền tảng quản lý tiến độ công việc hay các ứng dụng khổng lồ có sẵn trên thị trường. TaskTimer đơn giản là một công cụ có tính năng tối thiểu phục vụ cho nhu cầu cá nhân tôi và là một dự án bên lề để tôi tìm hiểu thêm về WPF của DotNet. Trải qua một năm sử dụng, công cụ này hoạt động khá tốt. Trong lúc tham khảo các ứng dụng online sẵn có, tôi thấy họ sắp xếp công việc theo kiểu Kaban. Tôi thấy tính năng đó của họ cũng khá thú vị, nên tôi muốn làm thử và đưa một chức năng đơn giản gần giống như vậy vào TaskTimer.


Mục tiêu của lần thử nghiệm này là áp dụng tính năng DragDrop trong WPF.Net Framework. Kinh nghiệm tôi rút ra cho lần thử nghiệm này đó là rất khó để sử dụng DragDrop cho các màn hình có các tương tác phức tạp, nó có thể hoạt động tốt với các control có sẵn trong WPF nhưng lại gây ra nhiều hạn chế cho các UserControl có độ tùy biến cao. Cho nên tôi quyết định quay lại phương pháp cơ bản bắt đầu từ các Event như MouseDown và MouseUp. Một hạn chế nữa của WPF là thứ tự render các UIElement rất khó điều khiển, và quá ít tài liệu nói về điều này. Phương thức BringToFront trong Window.Form đã không còn xuất hiện trong WPF quà là một thiếu sót lớn, gây ra nhiều khó khăn cho lập trình viên UI. Dưới đây là kết quả cuối cùng mà tôi thu được sau gần một ngày mò mẫm.



Bài đăng gần đây

Xem tất cả

CẢM ƠN BẠN!

bottom of page