2011-02-02 2 views
3

Я пытаюсь управлять мультитач. Итак, я пытаюсь отделить поведение прикосновений. Предположим, что человек хочет увеличить свою фотографию, им нужно ущипнуть, чтобы увеличить его. Однако два пальца, которые имеют две точки касания, так что расстояние не будет увеличиваться, как показано на рисунке ниже: enter image description hereКак ущипнуть в WPF

Как это можно отделить. Есть ли какая-нибудь функция для этого?

С уважением, C.Porawat

+2

Это * орехи *. Что, если я хочу использовать два пальца? Почему ваше приложение должно заботиться? Купить iPhone и провести с ним несколько дней; он правильно воспринимает этот тип вещей. –

+0

Причина, по которой мне нужно заботиться, - это управлять многими событиями из многих прикосновений. Я пытаюсь отделить поведение каждого касания. Например, когда один палец коснется в течение 2 секунд, появится меню. Кроме того, когда два пальца касаются меню. Первый получит его. Но, когда 2 пальца касаются вниз, это также означает, что они должны увеличиваться. Таким образом, как я могу узнать, что человек хочет вызвать меню или увеличить масштаб. Вот почему я решил использовать щепотку для разделения меню вызова и масштабирования –

+0

@PorawatChimcherdsin удивительная диаграмма +1 :) Два пальца крана должны интерпретироваться как два пальца вниз без движения на 250 мс. Перетаскивание двух пальцев (увеличение зума) должно начинаться только после того, как пальцы опущены и начнут двигаться. –

ответ

0

Является ли это о различая одной рукой против двуручной манипуляции масштабирования, или о наложении определенных минимальных/максимальных коэффициентов масштабирования для манипулируют объектов?

В первом случае это невозможно (надежно). Насколько мне известно, контакты не содержат идентифицируемой информации, которая позволила бы вам пальцами одной руки разделить пальцы другой руки. Как отметил Коди, это также НЕ желательно для масштабирования жестов.

Однако я считаю, что вы действительно пытаетесь добиться того, чтобы пользователь не масштабировал объект до крайних размеров. В качестве события ManipulationDelta, которое вы получаете (предпочтительнее, для сырых событий касания в вашем случае, поскольку вы должны были бы получить инкрементный матричный/масштабный коэффициент самостоятельно) предоставляет свойство DeltaManipulation.Scale, вы должны иметь возможность проверить этот и текущий масштаб фактор манипулируемого объекта (как указано величиной вектора строки матрицы преобразования вашего объекта, не помните о верхней части головы, если есть функция удобства, чтобы получить ее для вас?), чтобы наложить минимальные/максимальные коэффициенты масштабирования ,

Возможно, возможно, что какой-либо процессор обработки или UIElement имеет соответствующие границы, предварительно построенные для вас.

Смежные вопросы