Silverlight 4: как отложить событие Mouseenter - PullRequest
2 голосов
/ 06 декабря 2011

У меня есть ситуация, когда: пользователь перемещает мышь над изображением.

Если пользователь удерживает мышь на этом изображении в течение определенного времени, например,2 секунды, тогда только мне нужно продолжить

далее в случае события mouseenter, иначе - нет.

Я уже перешел на http://forums.silverlight.net/t/86671.aspx/1, но, похоже, у меня другой случай.

1 Ответ

4 голосов
/ 06 декабря 2011

Один из вариантов - использовать DispatchTimer для определения длины наведения мыши.

bool isMouseOverImage = false;
public void Image_MouseEnter(object sender, MouseEventArgs e)
{
  this.isMouseOverImage = true;
  var timer = new System.Windows.Threading.DispatcherTimer();
  timer.Interval = TimeSpan.FromSeconds(2);
  timer.Tick += (object timerSender, EventArgs timerArgs) =>
  {
     if(this.isMouseOverImage)
     {
       // write your code 
     }

     // stop the timer
     timer.Stop();     
  };
  timer.Start();
}

public void Image_MouseLeave(object sender, MouseEventArgs e)
{
  this.isMouseOverImage = false;
}

Если у вас несколько изображений, вам нужно создать повторно используемое Поведение и прикрепитьэто к каждому изображению.Я могу определить код для этого, если это поможет.

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