В принципе, у меня есть приложение размером 8000 пикселей на 8000 пикселей. Мы можем увеличить масштаб, чтобы просмотреть определенную часть, например, на радио, или мы можем уменьшить масштаб, чтобы просмотреть все.Приложение, улучшающее производительность сенсорных событий
Каждая часть автомобиля - это элемент управления, с которым мы можем манипулировать пальцами, на мониторе с двойным касанием или мультитач.
Моя проблема: для управления элементом управления, например кнопкой громкости, пользователю необходимо перемещать мышь точно так же, как в реальной жизни, поэтому с круговым движением. С мышью все идеально, он реагирует мгновенно без каких-либо задержек. Я использую OnMouseLeftButtonDown, OnMouseMove и т. Д. Прикосновением для компьютера очень сложно получить положение касания, и есть огромное отставание, особенно когда пользователь перемещает 2 разные кнопки с двумя пальцами одновременно , Я использую OnTouchDown, OnTouchMove и т.д ...
Единственное различие между мышью и прикосновением, когда нам нужно получить позицию, с помощью мыши я использую: (е является MouseButtonEventArgs)
Point currentPosition = e.GetPosition(this);
с сенсорным я использую: (е является TouchEventArgs)
Point currentPosition = e.GetTouchPoint(this).Position;
Все после того, как это то же самое.
Я не знаю, связано ли это с тем, что у меня слишком много контроля в моем приложении (более 5000, с которыми мы можем манипулировать, но когда мы увеличиваем только 2 элемента управления, это одно и то же) или потому, что это действительно сложно компьютер, чтобы получить позицию от события касания ....
Может кто-нибудь помочь мне с этим? Мне нужно найти решение, чтобы устранить отставание.
Я использую Visual Studio 2010, Смешать 4, .NET 4.0 для Windows 7 64-бит 7 Gb RAM Xeon 2,13 ГГц, 2 ядра, 8 нить экрана: технология ELO, на экране NEC 2490WUXi2
Если все хорошо работает с мышью, и вы не имеете каких-либо задержек манипулируя управления, то я бы сказал, что виновником является водитель сенсорного устройства. Я думаю, что он не в состоянии идти в ногу со скоростью пальца и, следовательно, вводить задержку, которую вы замечаете.Я видел эту проблему в определенном сенсорном оборудовании, и я использовал другое сенсорное оборудование с отличной отзывчивостью, поэтому я бы с уверенностью сказал, что проблема не имеет ничего общего с WPF или касанием сама по себе, это просто способ, которым драйвер реализован для вашего прикосновения устройство. – Murven
Я предлагаю вам попробовать использовать симулятор Microsoft Touch, который поставляется с Microsoft Surface SDK. Он работает с мышью, конечно, в этом смысле, как сказал Мурвен, если нет никакого отклика на получение и реагирование на события касания с использованием симулятора, то отставание происходит от драйверов с несколькими касаниями – Khaliloz
Какова частота событие OnTouchMove против OnMouseMove? Другими словами, OnTouchMove запускается 1000 раз в секунду, а OnMouseMove - 10 раз в секунду? – Snixtor