Silverlight 4:如何延迟鼠标事件

Silverlight 4:如何延迟鼠标事件,silverlight,silverlight-4.0,Silverlight,Silverlight 4.0,我遇到这样一种情况:用户将鼠标移到图像上 如果用户将鼠标停留在该图像上的特定时间(例如2秒),则只有我必须继续 在mouseenter事件中进一步,否则不要 我已经提到了,但看起来我的情况不同。一个选项是使用DispatchTimer来确定鼠标在上面的长度 bool isMouseOverImage = false; public void Image_MouseEnter(object sender, MouseEventArgs e) { this.isMouseOverImage =

我遇到这样一种情况:用户将鼠标移到图像上

如果用户将鼠标停留在该图像上的特定时间(例如2秒),则只有我必须继续

在mouseenter事件中进一步,否则不要


我已经提到了,但看起来我的情况不同。

一个选项是使用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;
}

如果有多个图像,则应创建一个可重复使用的图像,并将其附加到每个图像。如果有帮助的话,我可以为它定义代码。

是的。它成功了。我也有其他解决方案,比如使用backgroundworker或普通线程,但最安全的方法是Dispatchermer,因为它在主UI线程下运行