하나의 옵션은 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 또는 일반 스레드를 사용하는 것과 같은 다른 솔루션도 있지만 가장 안전한 방법은 기본 UI 스레드에서 실행되는 DispatcherTimer입니다. –