Giới thiệu
Mặc dù Microsoft đã bắt đầu bỏ qua WPF, sự phổ biến của WPF để tạo ra các ứng dụng Windows là không gián đoạn. Điều này là tự nhiên, nếu chúng ta xem xét rằng các khuôn khổ chính nó vẫn còn có rất nhiều lợi thế và cung cấp rất nhiều lợi ích. Ngoài ra WPF cung cấp cho chúng ta một mô hình mã hóa phong phú, trong đó vẫn còn chưa từng có. Tuy nhiên, một trong những nhược điểm với WPF là sự phụ thuộc vào khung bên dưới. Điều này không có gì mới, vì mỗi công nghệ có loại này bất lợi. Nếu chúng ta đang lập trình các ứng dụng web, sau đó chúng tôi cũng sẽ phụ thuộc vào các nhà cung cấp trình duyệt. Nếu chúng tôi một chương trình vi điều khiển, chúng tôi cũng sẽ phụ thuộc vào nhà sản xuất. Trong bài viết này tôi sẽ cố gắng để thảo luận về các khả năng và các vấn đề mà người ta sẽ phải đối mặt khi sử dụng cảm ứng đa điểm với WPF. Các bài báo đó cũng sẽ cố gắng để minh họa các giải pháp khác nhau. Nó cần phải nói rằng các vấn đề như đã nêu trong bài viết này thực sự có thể không có vấn đề cho bạn, dự án của bạn, tuy nhiên, đối với cá nhân tôi nó đã được khá rắc rối. Background Khoảng một năm trước, tôi đã hoàn thành cảm ứng đầu tiên của tôi tập trung ứng dụng với WPF gọi Sumerics. Các ứng dụng có một cái nhìn giao diện đẹp và làm việc trơn tru. Tuy nhiên, khi sử dụng cảm ứng đa điểm để quay hoặc phóng to các bảng xếp hạng, tôi gặp phải một hành vi kỳ lạ. Về cơ bản panning hay phóng to làm việc tốt trong đầu, nhưng sau đó đã bị trì hoãn nhiều và nhiều hơn nữa. Tôi nghĩ rằng việc kiểm soát biểu đồ tôi đang sử dụng (các thư viện Oxyplot tuyệt vời) đã có một lỗi, nhưng tôi đã không thể tìm thấy nó. Từ quan điểm của tôi các mã nhìn ok và trong một số trường hợp đã được tối ưu hóa. Đối với một trong khi tôi chỉ có thể bỏ qua hành vi này lạ, nhưng trong dự án mới nhất của tôi Quantum Striker tôi gặp phải hành vi này một lần nữa. Tôi đã được chịu trách nhiệm cho một công cụ trò chơi, âm thanh và video, cũng như một dòng câu chuyện thích hợp. Việc tích hợp bộ điều khiển là một phần của trò chơi động cơ này, do đó chạm đã được tích hợp trên WPF. Những gì tôi có kinh nghiệm là sử dụng cái gọi là tiền đạo, mà về cơ bản chỉ là đại diện cho hai điểm (vĩnh viễn) liên lạc, sẽ dẫn đến sự chậm trễ trong việc thực hiện liên lạc. Sự chậm trễ này là thực tế không ở đầu, nhưng tăng với thời gian của sự tương tác cảm ứng. Săn bắn xuống lỗi này gây phiền nhiễu tôi đã có thể tìm ra, mà nó thực sự là WPF, mà không làm việc đúng cách. Tôi tạo ra một chương trình trình diễn nhỏ đó là có thể giới thiệu các hành vi này. Nếu chúng ta sử dụng các ứng dụng chỉ với một ngón tay, chúng tôi sẽ không thể nhận thấy bất kỳ sự chậm trễ mạnh. Sử dụng cùng một ứng dụng với nhiều ngón tay, chúng ta sẽ thấy rằng sự chậm trễ được mạnh mẽ hơn với thời gian của sự tương tác cảm ứng. Ngoài ra số lượng các ngón tay, tức là số lượng tương tác cảm ứng, sẽ có tác động vào độ dốc của đường cong này. Tiếp cận đa chạm WPF cung cấp một loạt các khả năng để móc vào các sự kiện của các thiết bị cảm ứng. Tất cả những khả năng là sự kiện dựa. Không có tùy chọn để có được quyền truy cập vào một push dựa API. Nói chung chúng ta có thể truy cập vào các sự kiện sau đây: Touch, như Touchdown hoặc TouchUp Stylus *, như StylusDown hoặc StylusUp Manipulation *, như ManipulationStarted hoặc ManipulationCompleted Như với một số sự kiện WPF (trên thực tế tất cả các sự kiện định tuyến), chúng tôi cũng có quyền truy cập đến các sự kiện xem trước, tức là sự kiện được kích hoạt trong giai đoạn chụp (và không phải trong giai đoạn sủi bọt). . Giai đoạn chụp này đôi khi còn được gọi là giai đoạn đường hầm, kể từ sự kiện này chỉ là đường hầm thông qua hầu hết các yếu tố, cho đến khi một phần tử, gọi là nguồn gốc, là bị bắt Ở đây chúng tôi đã nhận Preview * Các sự kiện sau đây: PreviewTouch *, như PreviewTouchDown hoặc PreviewTouchUp PreviewStylus *, giống như PreviewStylusDown hoặc PreviewStylusUp Khi chúng ta chạm vào màn hình, WPF tạo nhận được tin nhắn và tạo ra những sự kiện này. Kể từ sự kiện cảm ứng được tất cả các định tuyến các sự kiện Preview * là bắn vào thư mục gốc của cây thị giác, đi xuống cây thị giác cho đến khi các yếu tố nguồn mà các sự kiện liên lạc xảy ra được đáp ứng. Khi yếu tố nguồn này được đạt tới, sự kiện này là bắn và bắt đầu sủi bọt từ các yếu tố nguồn. Bong bóng này tiến lên cây hình ảnh vào thư mục gốc. Các sự kiện lan truyền có thể được ngừng lại bằng cách thiết lập e.IsHandled = true. Mặt khác, nếu các sự kiện lan truyền liên lạc tới tất cả các con đường lên đến gốc, sau đó các sự kiện liên lạc được thăng chức một sự kiện chuột để đảm bảo tính tương thích ngược. Tại thời điểm này, PreviewMouseDown là bắn cho giai đoạn đường hầm. Cuối cùng các sự kiện MouseDown là bắn trong giai đoạn bong bóng.
đang được dịch, vui lòng đợi..
