2
我遇到以下情況:用戶將鼠標移到圖像上。Silverlight 4:如何延遲Mouseenter事件
如果用戶在特定時間內將鼠標停留在該圖像上, 2秒然後只有我必須繼續
進一步鼠標事件否則不。
我已經拒絕了http://forums.silverlight.net/t/86671.aspx/1但看起來像我的是不同的情況。
我遇到以下情況:用戶將鼠標移到圖像上。Silverlight 4:如何延遲Mouseenter事件
如果用戶在特定時間內將鼠標停留在該圖像上, 2秒然後只有我必須繼續
進一步鼠標事件否則不。
我已經拒絕了http://forums.silverlight.net/t/86671.aspx/1但看起來像我的是不同的情況。
一種選擇是使用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並將其連接到每個圖像。如果這有幫助,我可以定義代碼。
是的,它工作。我還有其他解決方案,如使用backgroundworker或普通線程,但最安全的方式是DispatcherTimer,因爲它在主UI線程下運行 –