有沒有什麼辦法可以檢測TextBlock(或標籤)上的長時間觸摸?檢測長時間觸摸(WPF和Microsoft Surface)
回答
據我所知,在方式沒有內置,所以你會做這樣的事情
•捕獲的開始時間是控制的觸下事件
•與此相比,釋放時間在TouchUup事件
•如果兩個人都是通過X不同,那麼運行長觸摸代碼
有可能是你必須編寫周圍的幾件事情,但是這是基本的想法
長按,或按住,因爲我認爲它是正式命名的,可以通過右鍵單擊事件進行檢測。
如果您使用的是Surface窗口,則可能是因爲右鍵單擊事件被禁用。
我們使用Surface SDK組件來啓用項目中的觸摸,並且確實觸發了右鍵單擊事件(以及單擊事件)。它是Surface SDK 2.0測試版,如果這很重要,我們使用常規的WPF窗口。 – AkselK
你使用Surface硬件嗎?一個標準的Windows PC會給你鼠標事件,但真實的表面輸入不會 –
在您可以使用的所有Surface控件上都有一個ContactHoldGesture事件。但是,我說這是在微軟期間負責創建此功能的人,此事件設計得很差,不應使用。它並沒有告訴你係統何時決定一個手指移動得太多而不能算作「保留」,並且它不會告訴你繪製動畫所需的信息,告訴用戶正在進行「保留」。你最好做@Kevin提出的建議並構建你自己的實現。
認真? 目前,在一個快速而骯髒的原型中,我仍然使用了ContactHoldGesture。不過,我會記住你的建議。還有一個問題,@Robert:我可以在哪裏找到Surface控件在2.0 SDK中具有的所有事件的參考?我無法找到任何令人滿意的東西,因爲我可以找到關於版本1.0的大多數文檔。 – Tilvia
@Tilvia - Surface 2主要利用WPF 4內置的觸摸事件。請訪問http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.aspx並在該頁面中搜索單詞「touch」。額外的東西(像這個蹩腳的'抱'手勢,我道歉)由http://msdn.microsoft.com/en-us/library/microsoft.surface.presentation.input.touchextensions_members.aspx –
有一個叫TouchAndHoldGesture
和PreviewTouchHoldGesture
事件這是可以做到的是,在awaitable方式。創建一個特定時間間隔的計時器當用戶點擊時啓動它,並在計時器過去時返回方法。如果用戶鬆開手,則返回帶有假標誌的方法。
public static Task<bool> TouchHold(this FrameworkElement element, TimeSpan duration)
{
DispatcherTimer timer = new DispatcherTimer();
TaskCompletionSource<bool> task = new TaskCompletionSource<bool>();
timer.Interval = duration;
MouseButtonEventHandler touchUpHandler = delegate
{
timer.Stop();
if (task.Task.Status == TaskStatus.Running)
{
task.SetResult(false);
}
};
element.PreviewMouseUp += touchUpHandler;
timer.Tick += delegate
{
element.PreviewMouseUp -= touchUpHandler;
timer.Stop();
task.SetResult(true);
};
timer.Start();
return task.Task;
}
欲瞭解更多信息,請閱讀post。
公開這是一個很好的解決方案,但它將與表面長觸摸=右鍵單擊事件共存。 – aggietech
但是這不能按預期工作! TaskCompletionSource的任務處於WaitingForActivation狀態。 SetResult(false)永遠不會被觸發。最好檢查task.Task.Status!= TaskStatus.RanToCompletion。最好使用TrySetResult而不是SetResult。 – GreenEyedAndy
- 1. 檢測長時間觸摸
- 2. Microsoft Surface設備上的Firefox的交互性和觸摸功能?
- 3. 檢測Sprite套件中的長時間觸摸
- 4. 如何檢測手指觸摸屏幕的時間長度iOS
- 5. 長時間觸摸surfaceView(android)
- 6. 長時間觸摸手勢
- 7. 觸摸和觸摸之間的時間
- 8. 檢測Microsoft Surface上的相機旋轉?
- 9. UITableViewController和檢測觸摸
- 10. 在Microsoft Surface窗口上模擬觸摸輸入
- 11. 觸摸不檢測?
- 12. android檢測觸摸
- 13. android檢測觸摸
- 14. 檢測CAShapeLayer觸摸
- 15. 檢測觸摸UIButton
- 16. UINavigationItem:檢測觸摸
- 17. 觸摸後如何檢測觸摸
- 18. Android中的長時間觸摸處理
- 19. 在WPF中觸摸鍵盤打開時檢測到
- 20. Android:OnTouch事件功能,檢測正常的觸摸,長時間的觸摸或快速雙擊
- 21. 觸摸ID被觸摸時檢測,沒有身份驗證
- 22. 如何在觸摸UIButton時通過UIView檢測觸摸?
- 23. C#XNA觸摸屏 - Surface Pro觸摸屏未被識別
- 24. Microsoft Surface中用於WPF的VNCSharpWpf問題
- 25. 觸摸開始和觸摸結束之間的時間
- 26. 觸摸時未檢測到Swift/Spritekit SKNode
- 27. 檢測用戶何時觸摸鏈接
- 28. 如何檢測何時觸摸drawable
- 29. iPhone屏幕鎖定時檢測觸摸
- 30. 如何檢測兩個同時觸摸?
您還需要確保觸摸在這段時間內移動的距離不超過1/2英寸,並且有一個動畫向用戶顯示您正在看他們的手指,以便他們意識到他們是應該保持不變 –