Silverlight 4:如何延迟Mouseenter事件

时间:2011-12-06 17:08:46

标签: silverlight silverlight-4.0

我的情况是:用户将鼠标移到图像上。

如果用户将鼠标放在该图像上特定时间。 2秒然后只有我必须继续

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

我已经改编为http://forums.silverlight.net/t/86671.aspx/1,但看起来我的情况不同。

1 个答案:

答案 0 :(得分:4)

一种选择是使用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;
}

如果您有多张图片,则应创建可重复使用的Behavior并将其附加到每张图片。我可以为此定义代码,如果这会有所帮助。