我正在嘗試創建自定義滾動條並將圖像用作按鈕。Silverlight:MouseLeftButtonDown定時器重複觸發事件
現在簡單
我可以處理的MouseLeftButtonDown和Up事件就好了,但我想這樣做是同時其按住,每隔多少毫秒的觸發事件。
我試過這樣的東西,但它不是很工作。建議?
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 2009-04-13 14:21:36