From b1acb678866a13a5c85eeb07ada39196db75fd19 Mon Sep 17 00:00:00 2001 From: XY Wang Date: Wed, 15 Sep 2021 23:32:34 +0800 Subject: [PATCH] Fix bug and developing features for gestures --- Ink Canvas/MainWindow.xaml.cs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs index 4ab8a69..a5da175 100644 --- a/Ink Canvas/MainWindow.xaml.cs +++ b/Ink Canvas/MainWindow.xaml.cs @@ -24,6 +24,7 @@ using System.Diagnostics; using Newtonsoft.Json; using IWshRuntimeLibrary; using File = System.IO.File; +using System.Collections.ObjectModel; namespace Ink_Canvas { @@ -78,10 +79,41 @@ namespace Ink_Canvas } inkCanvas.EditingMode = InkCanvasEditingMode.Ink; + inkCanvas.Gesture += InkCanvas_Gesture; } catch { } } + ApplicationGesture lastApplicationGesture = ApplicationGesture.AllGestures; + DateTime lastGestureTime = DateTime.Now; + private void InkCanvas_Gesture(object sender, InkCanvasGestureEventArgs e) + { + ReadOnlyCollection gestures = e.GetGestureRecognitionResults(); + + foreach (GestureRecognitionResult gest in gestures) + { + //Trace.WriteLine(string.Format("Gesture: {0}, Confidence: {1}", gest.ApplicationGesture, gest.RecognitionConfidence)); + if ((DateTime.Now - lastGestureTime).TotalMilliseconds <= 1500 && + StackPanelPPTControls.Visibility == Visibility.Visible && + lastApplicationGesture == gest.ApplicationGesture) + { + if (gest.ApplicationGesture == ApplicationGesture.Left) + { + BtnPPTSlidesDown_Click(BtnPPTSlidesDown, null); + } + if (gest.ApplicationGesture == ApplicationGesture.Right) + { + BtnPPTSlidesDown_Click(BtnPPTSlidesDown, null); + } + } + + lastApplicationGesture = gest.ApplicationGesture; + lastGestureTime = DateTime.Now; + } + + inkCanvas.Strokes.Add(e.Strokes); + } + private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e) { e.CanExecute = true; @@ -348,6 +380,7 @@ namespace Ink_Canvas if (Main_Grid.Background == Brushes.Transparent) { BtnHideInkCanvas_Click(BtnHideInkCanvas, null); + inkCanvas.EditingMode = InkCanvasEditingMode.Ink; if (currentMode == 1) { currentMode = 0;