WPF: изображение клика - PullRequest
       6

WPF: изображение клика

4 голосов
/ 15 апреля 2010

Я могу найти только события MouseDown и MouseUp на изображении в WPF. Это вызывает некоторые проблемы, если я делаю MouseDown на каком-либо изображении, событие Move the mouse и MouseUp происходит на другом изображении. Есть ли другое событие, которое я могу использовать для решения этой проблемы. как событие MouseClick для элемента Button.

Ответы [ 2 ]

10 голосов
/ 15 апреля 2010

Если вам действительно нужно использовать изображение, то есть несколько вещей, которые вы можете сделать, чтобы проверить «клик».

  1. Проверьте время между двумя событиями. Если оно меньше вашего порогового значения, обработайте мышь как щелчок. Вам нужно будет сохранить время события нажатия мыши.

  2. Убедитесь, что sender обоих событий одинаковы. Опять же, вам нужно сохранить sender события нажатия мыши.

Возможно, вы также захотите проверить, нажата и отпущена ли левая кнопка.

Объединение двух:

    private DateTime downTime;
    private object downSender;

    private void Image_MouseDown(object sender, MouseButtonEventArgs e)
    {
        if (e.LeftButton == MouseButtonState.Pressed)
        {
            this.downSender = sender;
            this.downTime = DateTime.Now;
        }
    }

    private void Image_MouseUp(object sender, MouseButtonEventArgs e)
    {
        if (e.LeftButton == MouseButtonState.Released &&
            sender == this.downSender)
        {
            TimeSpan timeSinceDown = DateTime.Now - this.downTime;
            if (timeSinceDown.TotalMilliseconds < 500)
            {
                // Do click
            }
        }
    }

На самом деле вы можете сделать еще одну третью вещь: проверить положение мыши.

    private Point downPosition;

сохранить позицию:

    this.downPosition = e.GetPosition(sender as Image);

, затем проверьте его в событии MouseUp, снова со значением допуска.

5 голосов
/ 15 апреля 2010

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

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