Как заблокировать несколько щелчков мышью на элемент в следующих окнах WPF? - PullRequest
2 голосов
/ 23 декабря 2010

У меня есть несколько окон в проекте wpf.в любом окне я помещаю элемент управления (например, кнопку).поскольку положение элементов управления во всех окнах одинаково.я определяю событие MouseLeftButtonUp для элементов управления во всех окнах.с помощью щелчка (левой кнопкой мыши вверх) на элементе управления, я создаю и открываю диалоговое окно следующего окна.например, для первого окна:

Window2 win2 = new Window2 ();
win2.Owner = this;
win2.ShowDialog();

, но моя проблема:

, если я делаю двойной или тройной щелчок по кнопке первого окна, поскольку все элементы управления положением во всех окнах одинаковы,все два или три окна открываются как каскадные.и я хочу открыть только одно следующее окно.

спасибо за ваши ответы

Ответы [ 2 ]

4 голосов
/ 23 декабря 2010

Смотрите мой комментарий выше. Возможно, вы захотите считать это «побочным дизайном», а не исправлять его.

Если вы все-таки решите это исправить, вы можете реализовать форму отмены подпрыгивания.

  • Создание некоторой формы глобального состояния, которую могут видеть все окна (например, поле в объекте приложения или класс главного окна).
  • В этом глобальном состоянии сохраняйте время последнего успешного / правильного клика. Начните с DateTime.MinValue (или как там это называется).
  • При щелчке выберите текущее время DateTime.Now
  • Если время между текущим временем и последним успешным щелчком слишком короткое (меньше, чем время вашего отката. Может быть TimeSpan.FromMilliseconds(500)), тогда не создавайте новое окно
  • Если промежуток времени превышает время вашего отката, обновите последний успешный / правильный щелчок и только затем откройте новое окно
0 голосов
/ 28 сентября 2013

Считаете ли вы, что кнопка отключена изначально и включена через секунду после загрузки формы? Вы можете сделать это, используя таймер.

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