我想在我的應用程序中使用4點多點觸控手勢。該應用程序是Silverlight(不是xna),但手勢不適用於任何控件,它們只會檢查用戶是否將4個手指拖動到屏幕的左側或右側。WP7中的4點多點觸控手勢(silverlight)
有沒有我可以使用的圖書館?或者我自己實現它的最簡單方法是什麼?我可以使用XNA多點觸控庫嗎?
乾杯
我想在我的應用程序中使用4點多點觸控手勢。該應用程序是Silverlight(不是xna),但手勢不適用於任何控件,它們只會檢查用戶是否將4個手指拖動到屏幕的左側或右側。WP7中的4點多點觸控手勢(silverlight)
有沒有我可以使用的圖書館?或者我自己實現它的最簡單方法是什麼?我可以使用XNA多點觸控庫嗎?
乾杯
正如你可能知道的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/。
Silverlight WP7 Toolkit非常適合做手勢的東西。
Download WP7 Toolkit
Then check out this awesome tutorial
該工具包僅提供2點多點觸控支持 – user963935 2012-02-03 21:06:52
XNA可處理多達4個觸點。您應該可以使用它,但您可能必須使用計時器來讀取值。 (工具包中的GestureHelper在內部執行此操作,但只會返回2分)。 – Jermismo 2012-02-05 05:54:20
這對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