2012-02-03 66 views
0

我想在我的應用程序中使用4點多點觸控手勢。該應用程序是Silverlight(不是xna),但手勢不適用於任何控件,它們只會檢查用戶是否將4個手指拖動到屏幕的左側或右側。WP7中的4點多點觸控手勢(silverlight)

有沒有我可以使用的圖書館?或者我自己實現它的最簡單方法是什麼?我可以使用XNA多點觸控庫嗎?

乾杯

回答

0

正如你可能知道的WP7的Silverlight API使得對多點觸摸即PinchStarted,PinchDelta和PinchCompleted兩個接觸點的假設。

請查看Microsoft.Xna.Framework.Input.Touch命名空間中的TouchPanel類。

//Determine the maximum number of touches permited (four for WP7): 
TouchPanelCapabilities tc = TouchPanel.GetCapabilities(); 
if(tc.IsConnected) 
{ 
    return tc.MaximumTouchCount; 
} 

//To read multitouch data from the touch input device you can do the following: 
// Process touch events 
TouchCollection touchColl = TouchPanel.GetState(); 
foreach (TouchLocation t in touchColl) 
{ 
    if ((t.State == TouchLocationState.Pressed) 
      || (t.State == TouchLocationState.Moved)) 
    { 
    //You can check the coordinates of each point (and the previous coordinate TryGetPreviousLocation()) 
    float xcoordiante = t.Position.X; 
    float ycoordiante = t.Position.Y; 

    //Determine if touch point was moved/pressed or released use the State property 
    TouchLocationState st = t.State; 

    } 
} 

更多細節可以在這裏找到:http://msdn.microsoft.com/en-us/library/ff827744.aspx

我還沒有看到專門針對4點觸控的庫,但是,如果你正在尋找與多點觸摸的調試幫助,我會強烈建議庫http://multitouch.codeplex.com/

+0

這對XNA好主意,但在Silverlight更好的方法是'Touch.FrameReported'鏈接:[MSDN](http://msdn.microsoft.com/en-us/library/system。 windows.input.touch.framereported.aspx) – user963935 2012-02-03 21:09:01

0

Silverlight WP7 Toolkit非常適合做手勢的東西。
Download WP7 Toolkit
Then check out this awesome tutorial

+0

該工具包僅提供2點多點觸控支持 – user963935 2012-02-03 21:06:52

+0

XNA可處理多達4個觸點。您應該可以使用它,但您可能必須使用計時器來讀取值。 (工具包中的GestureHelper在內部執行此操作,但只會返回2分)。 – Jermismo 2012-02-05 05:54:20