Есть ли простой способ сказать, что вызвало событие Click кнопки, кроме установки нескольких флагов в обработчиках событий Mouse / Key Up / Down? В настоящее время меня интересует только отличие мыши от всего остального, но было бы неплохо по возможности обрабатывать стилус и другие типы ввода. Должен ли я создать свой собственный кнопочный элемент управления, чтобы добиться этого?
Редактировать: Чтобы уточнить, почему я забочусь: в данном конкретном случае я пытаюсь реализовать кнопки «следующий» и «предыдущий» для своего рода средства просмотра изображений. Изображения могут иметь различный размер, и положение кнопок будет меняться (поэтому они всегда располагаются по центру под изображением). Весьма раздражает следить за такими кнопками мышью, если вам нужно прокрутить несколько изображений, поэтому я хочу, чтобы положение мыши оставалось постоянным относительно нажатой кнопки, но только если она была нажата мышью, а не клавиатурой.
Edit2: не имеет значения, находятся ли кнопки сверху или снизу, так как центр может измениться в любом случае. «Средство просмотра изображений» здесь - это просто абстракция, и в данном конкретном случае для меня важно, чтобы верхний левый угол изображения сохранял свою позицию, но это выходит за рамки вопроса, чтобы перейти к деталям. Масштабирование изображения не так тривиально и в таком приложении, поэтому я хочу знать ответ на вопрос, который я задал, не вдаваясь в обсуждение реализации пользовательского интерфейса.