MouseLeftButtonUp / Down против ManipulationCompleted - PullRequest
0 голосов
/ 20 апреля 2011

Есть ли причина, по которой MouseLeftButtonUp (или Вниз) будет выбрано более ManipulationCompleted для данного элемента управления, который на самом деле просто нуждается в обработке события "щелчка" (т. Е. Пользователь касается элемента управления и что-то происходит) в WindowsТелефон 7?

Я знаю, что ManipulationCompleted - это все модно, и с ним можно сделать больше, например, обнаружение пролистывания, но все, о чем я спрашиваю, это то, что будет считаться «щелчком», т.е.лучше, чем другие, и если да, то почему?

Ответы [ 3 ]

2 голосов
/ 21 апреля 2011

Это действительно зависит от того, какую информацию вам нужно получать и обрабатывать, когда пользователь касается элемента управления. MouseLeftButtonUp / MouseLeftButtonDown - самые основные события обработки касания - они предлагают простой способ отследить относительное положение касания, поэтому, если вам нужно узнать, как далеко от другого элемента управления произошел щелчок, вы можете использовать это:

Debug.WriteLine(e.GetPosition(button1).X);

Где e представляет MouseButtonEventArgs.

ManipulationCompleted, с другой стороны, больше подходит для случаев, когда вам необходимо:

  • Переместить элемент управления
  • Изменить размер элемента управления
  • Выполнять любые преобразования в элементе управления

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

Кроме того, помните, что для элементов управления на основе кнопок есть ClickMode, где вы явно объявляете, когда следует учитывать щелчок. Вот где MouseLeftButtonUp и MouseLeftButtonDown играют важную роль, так как вы можете связать определенные действия, когда кнопка находится в разных состояниях. Это невозможно с ManipulationCompleted, который будет запущен независимо от состояния кнопки.

0 голосов
/ 21 апреля 2011

Если вы просто хотите, чтобы пользователь выбирал что-то, прикоснувшись к нему, вы можете получить лучший пользовательский опыт с помощью жеста Tap в Silverlight Toolkit .

Если вы неНе используйте это, тогда вам нужно обработать 2 дополнительных события для каждого элемента, к которому вы хотите прикоснуться.Так как вам нужно обрабатывать версии событий LeftMouseButton * Up & Down или ManipulationStart & Completed, чтобы убедиться, что элемент, к которому прикасается при удалении пальца, является тем же, который был впервые затронут, когда палец коснулся устройства.Если вы этого не сделаете, вы можете получить странное поведение, когда выбранный элемент не обязательно тот, который ожидает большинство пользователей.

0 голосов
/ 20 апреля 2011

Этот сбивает с толку.Почему MouseLeftButtonUp работает в WP7?Там нет мышей!(К счастью, они хотели сделать приложения более легкими для перехода на SL и наоборот)

При разработке приложения Siliverlight для Windows Phone лучше использовать ManipulationCompleted.Это его меньше смущает.

PS.Мне также не нравится FindResource .Бьюсь об заклад, это закулисный словарь, следовательно, должен быть GetResource.Find указывает, что для получения ресурса требуется O (lg (n)) или более.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...