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や通常のスレッドを使用するなどの他のソリューションもありますが、安全な方法は、メインUIスレッドで実行されるDispatcherTimerです –