カスタムスクロールバーを作成しようとしていますが、画像をボタンとして使用しています。今、単純なSilverlight:MouseLeftButtonDownイベントを繰り返し発生させるためのタイマー
私はちょうど罰金のMouseLeftButtonDownとアップイベントを処理するが、私は何をしたいのですが、そのが押されている間、すべての非常に多くのイベントが発射されるトリガーミリ秒であることができますについては
。私はこれを試しましたが、それほどうまくいきませんでした。提案?
public delegate void Changed(RangeScrollButtonControl sender, int value);
public event Changed OnChanged;
private System.Threading.Timer Timer;
private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
this.Timer = new System.Threading.Timer(Timer_Callback, null, 0, 100);
}
private void Image_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
this.Timer = null;
}
private void Timer_Callback(object sender)
{
if (this.OnChanged != null)
{
this.OnChanged(this, 1);
}
}
Timerオブジェクトはスレッドセーフではなく、クロススレッド例外を実行していました。解決策はDispatchTimerを使用することでしたが、現在は問題なく動作しています。 – Gautam