我想實現一個自定義控件,它包含一些帶有一些畫布元素的網格作爲子元素,當在網格上進行滑動操作時,我打算使用畫布預製一些操作元素。 我無法處理電網的刷卡,我已經張貼在 msdn - win8 Dev forum在Windows 8 Grid中處理Swipe Guesture
回答
我和你們在同一條船上,因爲在這方面沒有任何樣本,但在仔細閱讀了MSDN文檔後,我們瞭解瞭如何在Windows 8商店應用中使用C#實現輕掃手勢,這是我想到的(它適用於需要向上/向下/向左/向右滑動的應用程序):
首先,不需要使用GestureRecognizer,需要使用操作事件,所以您想要處理滑動的網格(讓我們假設您製作它以便它將整個屏幕用於解釋手勢)執行以下操作:
我打電話給我的網格滑動S urface,我處理兩個Y軸和X軸操作模式:
swipingSurface.ManipulationMode = ManipulationModes.TranslateX | ManipulationModes.TranslateY;
再用線將您要通知操縱事件,在我來說,我只是想知道那麼操作開始和結束的:
swipingSurface.ManipulationStarted += OnManipulationStarted;
swipingSurface.ManipulationCompleted += OnManipulationCompleted;
做任何你想要在你的操控開始,如獲取初始點,如果你想。但實際的訣竅是在ManipulationCompleted事件,您需要在其中得到速度對您的姿勢導致,具體如下:
public void OnManipulationCompleted(object sender, ManipulationCompletedEventArgs e) {
var velocities = e.Velocities;
}
的ManipulationCompletedEventArgs 速度對屬性將帶回型ManipulationVelocities的結構,其中包含其他屬性:
- 角:以毫秒爲單位的旋轉速度。
- 擴展:DIP中每毫秒的擴展或縮放速度。
- 線性:每毫秒DIP中的直線速度。
我實際上看線性速度,這是一個點包含表示對其執行手勢的方向X和Y值;例如,如果滑動向上,您會注意到Y值爲正,而如果向下Y值爲負值, X值也是一樣,如果滑動是左邊的,X值是負值,如果滑動是正確的,X值是正值,所以你可以玩這些值並檢查你的滑動方向,最終點等。
希望這會有所幫助。
那麼,刷卡部分解決了,謝謝你。但現在我需要解決一個問題(不知道你是否也解決了它)。滑動在空白區域不起作用(想象你有一個網格,空單元...即使你在網格或父類中捕獲這些事件,也不能在這些單元上滑動) –
@Tiago Almeida當電網空着時,你是否收到所有事件? –
@RajmohanKathiresan最終我解決了它。事實證明,你需要有一個背景,所以你可以接收事件。即使該背景設置爲「透明」。 –
同樣你可以嘗試在你刷卡,能夠控制設置ManipulationMode和處理手法〜事件。請注意,某些控件可能會阻止UI事件的冒泡,因此如果您說把控件放在Button或ScrollViewer中 - 事件可能不起作用。
謝謝,我會盡力,請你指導我爲網格分配一個手勢。 'geustureRecorgizer = new GestureRecognizer(); geustureRecorgizer.CrossSlideHorizontally = true; geustureRecorgizer.GestureSettings = GestureSettings.CrossSlide; geustureRecorgizer.CrossSliding + =新TypedEventHandler
對不起,我還沒有使用GestureRecognizer尚未。 –
您可以檢出SwipeHintThemeAnimation
,它使用GestureRecognizer
連接到矩形控件或修改它以使用網格控件,請參閱the documentation。
- 1. 在Windows 8中處理字體
- 2. Windows 8 WinRT Xaml Grid in InlineUIContainer
- 3. Windows Phone 8視頻處理庫8
- 4. Windows 8自然語言處理8
- 5. Windows Phone 8中的Grid RowDefinitions問題
- 6. 處理Windows 8的生命週期
- 7. System.AccessViolationException未處理c#Windows Phone 8
- 8. Windows批處理回聲UTF-8字符
- 9. VeriticleAlignment Center在Grid中的Windows Phone 8中不起作用
- 10. 如何在Windows Phone 8中處理ManipulationCompleted事件?
- 11. 如何在Windows 8中處理silverlight stackpanel mousemove事件?
- 12. 如何在Windows 8中處理Unicode用戶名
- 13. 如何在Windows 8 WinJS遊戲中處理分辨率?
- 14. 在Windows 8中註冊協議處理程序
- 15. MVVM:在Windows 8中使用鍵盤處理列表項導航
- 16. 在Windows 8/RT應用程序中處理位圖
- 17. 在Windows Phone 8中處理客戶端SSL證書錯誤silverlight
- 18. For Windows在Windows批處理
- 19. SharpDX在Windows Phone 8中加載紋理
- 20. 在Windows中處理unicode字符串
- 21. 在Java中處理utf-8字符串
- 22. 在Perl中正確處理UTF-8
- 23. 在Ruby中處理UTF-8文件
- 24. Ruby on Rails在escape_javascript中處理UTF-8
- 25. 在unix中處理utf 8個字符
- 26. Windows 8中的Windows Phone 8
- 27. 在node.js中處理windows-1250的URI/express
- 28. 如何處理Windows 8中的HTML內容Metro應用程序
- 29. Windows 8中的鍵盤處理基於XAML的遊戲
- 30. Windows Phone 8無法處理BackgroundFileTransfer或BackgroundAudioPlayer中的HTTP代碼301?
我試圖處理指針移動,輸入代表模仿滑動,但我無法區分右 - >左和左 - >右手勢。 我不知道爲網格設置GestureRecoginizer對象。 –