我想你可以嘗試使用FrameReported
事件,在這個事件中你可以從TouchPanel讀取手勢。簡單的例子可以看起來像這樣:
using Microsoft.Xna.Framework.Input.Touch;
using Microsoft.Xna.Framework;
public MainPage()
{
InitializeComponent();
TouchPanel.EnabledGestures = (GestureType)1023; // read all gestures
Touch.FrameReported += Touch_FrameReported;
}
private void Touch_FrameReported(object sender, TouchFrameEventArgs e)
{
if (TouchPanel.IsGestureAvailable)
{
GestureSample gesture = TouchPanel.ReadGesture();
float Xposition = gesture.Position.X;
float Yposition = gesture.Position.Y;
}
}
根據您的目的,您可以啓用一些手勢並從中讀取各種屬性。
我得到觸摸事件,但這並不告訴我哪個項目被觸摸 - 我如何查詢滾動佈局中任何「UIElement」(例如'Image')的相關頂部,底部,左側和右側,以便我可以用你的例子中的'Xposition'和'Yposition'來確定'UIElement'被觸摸了嗎?我編輯了這個問題。如果沒有辦法,那麼在這種情況下,您是否建議採用其他方式獲取觸摸物品? – Navigateur
@Navigateur是的 - 這不會給UIElement信息。如果你想檢查單個元素,你可以嘗試檢查該元素的位置'GeneralTransform myTransform = App.Current.RootVisual.TransformToVisual(UIElement); Point myPoint = myTransform.Transform(new Point(0,0));'。但這是一個艱難的解決方法。但爲什麼不使用UIElement的Tap事件? – Romasz
因爲Tap事件從不在所述條件下觸發。在任何現有的動畫動畫中執行普通的點擊(沒有任何拖動)時,Tap事件應該在釋放屏幕時觸發,但事實並非如此,或者是由微軟做出的糟糕的設計決定,或者是偶然的錯誤。 – Navigateur