2012-01-17 52 views
0

WPF中的滑塊控件無法正常工作,因爲我正在尋找。爲多點觸控應用程序創建我自己的滑塊

我需要在同一時間上滑動2點不同的控制(滑塊)(每個一個手指)。 當我觸摸第一個滑塊時,它將獲得所有的焦點,而我無法使用第二個觸摸設備觸摸其他任何東西。

所以我需要創建自己的滑塊(MySlider)從滑塊繼承。 我做了4種方法:

protected override void OnTouchDown(TouchEventArgs e) 
protected override void OnTouchUp(TouchEventArgs e) 
protected override void OnTouchLeave(TouchEventArgs e) 
protected override void OnTouchMove(TouchEventArgs e) 

但有移動滑塊酷似鼠標的方法嗎?或者我需要每次我觸摸設備搬到像到calcule:

protected override void OnTouchMove(TouchEventArgs e) 
{ 
    base.OnTouchMove(e); 

    if (this.Value <= this.Maximum && this.Value >= this.Minimum) 
    { 
     Point newPoint = e.GetTouchPoint(this).Position; 
     this.Value += (this.lastPoint.Y - newPoint.Y); 
     lastPoint = newPoint; 
    } 
    e.Handled = true; 
} 

而且在這種情況下,運動不以相同的速度移動手指...

+0

沒有人能幫助我解決這個問題嗎?爲多點觸控創建我自己的滑塊... – mlemay 2012-01-17 18:26:28

回答

1

您可能想查看Surface 2.0 SDK,因爲它包含一個名爲SurfaceSlider的類,我相信這會允許兩個或多個滑塊同時更新。此SDK可用於針對Windows 7構建的應用程序。

1

我不熟悉在WPF中有多點觸控事件,所以無法爲你提供幫助。但是,將鼠標移動到與觸摸位置相同的位置,則可以查看此答案here

你的問題,你假定控制的寬度等於最大值。您需要取出實際寬度相對於最大值和最小值之差的因子。

這隻能通過事件,因爲沒有路由事件或爲檢測點鼠標位置來完成。

相關問題