Быстрая и отзывчивая кнопка изображения для .NET Compact Framework - PullRequest
1 голос
/ 17 августа 2011

Я занимаюсь разработкой для .NET Compact Framework 3.5 на C # для Windows Mobile.

Мне нужна кнопка, которая имеет следующие характеристики:

  1. Свойство Image, чтобы я мог настроить внешний вид кнопки с помощью Изображение
  2. свойство сжатого изображения, так что я могу настроить нажатый вид кнопка.
  3. Рисование должно быть быстрым. Когда кнопка нажата, вид должен быстро переключиться на нажатый вид, чтобы пользователь знал очень быстро, что кнопка нажата и не нужно ждать взгляд, чтобы измениться. Когда кнопка отпущена, внешний вид должен быстро измениться на неотжатый.
  4. Все нажатия кнопок должны быть зарегистрированы. Даже если вы нажмете одну и ту же кнопку очень быстро, событие нажатия должно срабатывать столько раз.
  5. Все нажатия кнопок должны быстро вызывать событие Click. Даже если вы быстро нажмете одну и ту же кнопку, событие нажатия должно быть запущено столько раз.
  6. Мне НЕ нужна поддержка альфа-смешивания, но, полагаю, это не повредит, если другие требования будут выполнены.

Я попробовал следующее, но пока еще ничего не отвечает этим требованиям:

Переопределение стандартного метода OnPaint элемента управления Button не влияет на CF.

Элемент управления PictureBox не соответствует требованию 4. Когда вы быстро нажимаете ту же кнопку, количество сработавших событий Click меньше, чем количество нажатий кнопки. У меня точно такая же проблема, когда я переопределяю класс Control с наименьшим количеством кода, даже не рисуя изображения. Что странно, так это то, что стандартный элемент управления Button не имеет этой проблемы.

Класс OpenNETCF 2.3 Button2 не соответствует требованию 4, поскольку имеет ту же проблему.

Библиотека AlphaMobileControls не соответствует требованиям 3 и 5.

1 Ответ

0 голосов
/ 18 августа 2011

Когда пользователь быстро и многократно нажимает на кнопку, часть событий будет интерпретироваться как события двойного щелчка.Это объясняет, почему вы видите меньше, чем ожидали.Это не характерно для .net CF, но характерно для всех разновидностей Windows, о которых я знаю.

...