private void InputManagerMouseGestureRecognized(object sender, MouseGestureEventArgs e) { if (this.focusedControl != null) { this.focusedControl.InputInjector.InjectMouseGesture(e); } }
/// <summary> /// 方向和笔序识别结果匹配和处理 /// </summary> /// <param name="args"></param> void gesture_GestureMatchEvent(MouseGestureEventArgs args) { switch (args.Present) { case "spiralSummarization": if (startIndex == int.MinValue && endIndex == int.MinValue) { //先清除原来的两个螺旋摘要 //_inkCollector._mainPage.VideoSummarizationControl.keyFrameListScrollViewer.Visibility = Visibility.Visible; _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationRight.hiddenSpiralSummarization(); _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationBottom.hiddenSpiralSummarization(); _inkCollector._mainPage.VideoSummarizationControl.resetTableGrid(); _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationLeft.InkCanvas.Margin = new Thickness(0, 0, 0, 0); _inkCanvas.Strokes.Clear(); _inkCollector.VideoSummarization = _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationLeft; _inkCollector._mainPage.VideoSummarizationControl._timeBar.Visibility = Visibility.Visible; _inkCollector._mainPage.VideoSummarizationControl.VideoProgressText.Visibility = Visibility.Visible; _inkCollector.Mode = InkMode.VideoSummarization; } break; default: //Console.WriteLine("default"); break; } }
public void InjectMouseGesture(MouseGestureEventArgs e) { if (this.control.CanReactToInput) { this.OnMouseGesture(e); } }
/// <summary> /// 方向和笔序识别结果匹配和处理 /// </summary> /// <param name="args"></param> void gesture_GestureMatchEvent(MouseGestureEventArgs args) { //记录操作事件与持续时间 recordOperateEvent(args.Present); switch (args.Present) { case "generateSpiralSummarization": //生成新的螺旋摘要 InkCanvas newSpiralInkCanvas = new InkCanvas(); newSpiralInkCanvas.Width = TableGrid.ActualWidth * 0.75; newSpiralInkCanvas.Height = TableGrid.ActualHeight; newSpiralInkCanvas.Background = new SolidColorBrush(Colors.Transparent); newSpiralInkCanvas.Margin = new Thickness(0, TableGrid.ActualHeight * 0.25, 0, 0); double spiralWidth = 0; spiralWidth = 54; MySpiral mySpiral = new MySpiral(spiralWidth, GlobalValues.color, new StylusPoint((double)(int)(newSpiralInkCanvas.Width / 2), (double)(int)(newSpiralInkCanvas.Height / 2)), 3, 10, newSpiralInkCanvas, false); SpiralSummarization newSpiralSummarization = new SpiralSummarization(_inkCollector, mySpiral, selectKeyFrames, false); //SpiralSummarization newSpiralSummarization = new SpiralSummarization(mySpiral, _inkCollector.TileKeyFrames); _inkCanvas.Children.Add(newSpiralInkCanvas); _inkCollector.VideoSummarization = newSpiralSummarization; break; case "spiralSummarization": if (startIndex == int.MinValue && endIndex == int.MinValue) { //先清除原来的两个螺旋摘要 _inkCollector._mainPage.VideoSummarizationControl.keyFrameListScrollViewer.Visibility = Visibility.Visible; ((InkCanvas)_inkCanvas.Children[0]).Children.Clear(); ((InkCanvas)_inkCanvas.Children[0]).Strokes.Clear(); ((InkCanvas)_inkCanvas.Children[1]).Children.Clear(); ((InkCanvas)_inkCanvas.Children[1]).Strokes.Clear(); _inkCanvas.Children.RemoveAt(0); _inkCanvas.Children.RemoveAt(0); ((InkCanvas)_inkCanvas.Children[0]).Margin = new Thickness(0); _inkCollector._mainPage.VideoSummarizationControl.resetTableGrid(); _inkCollector._mainPage.VideoSummarizationControl.keyFrameList._inkCanvas.Children.Clear(); _inkCollector._mainPage.VideoSummarizationControl.keyFrameList2._inkCanvas.Children.Clear(); _inkCollector._mainPage.VideoSummarizationControl.keyFrameListScrollViewer.Visibility = Visibility.Collapsed; _inkCollector._mainPage.VideoSummarizationControl.keyFrameListScrollViewer2.Visibility = Visibility.Collapsed; _inkCollector._mainPage.VideoSummarizationControl.GridBtn.Visibility = Visibility.Visible; _inkCollector._mainPage.VideoSummarizationControl._timeBar.Visibility = Visibility.Visible; _inkCollector._mainPage.VideoSummarizationControl.VideoProgressText.Visibility = Visibility.Visible; _inkCollector._mainPage.VideoSummarizationControl.BtnMerge.Visibility = Visibility.Collapsed; _inkCollector.Mode = InkMode.VideoSummarization; } break; default: //Console.WriteLine("default"); break; } }
private void FireMouseGestureEvent() { if (this.mouseGestures != null && this.mouseGestures.Count > 0) { var e = new MouseGestureEventArgs(this.mouseGestures, this.mouseGesturesLocations, this.mouseGestureEndLocation); if (this.MouseGestureRecognized != null) { this.MouseGestureRecognized(this, e); } } }
/// <summary> /// Add the specified event to the history /// </summary> /// <param name="eventArgs">The <see cref="MouseGestureEventArgs"/></param> private void AddEventToHistory(MouseGestureEventArgs eventArgs) { if (HistoryLimit == 0) { return; } Requires.NotNull(eventArgs, nameof(eventArgs)); if (MouseGestureEventsHistory.Count >= HistoryLimit && MouseGestureEventsHistory.Count > 0) { MouseGestureEventsHistory.RemoveAt(MouseGestureEventsHistory.Count - 1); } MouseGestureEventsHistory.Insert(0, eventArgs); }
private void OnMouseAction(object sender, MouseHookEventArgs e) { MouseAction?.Invoke(this, e); if (e.Handled) { return; } if ((e.Action == Enums.MouseAction.LeftButtonPressed && GestureActionButton == MouseButtons.LeftMouseButton) || (e.Action == Enums.MouseAction.RightButtonPressed && GestureActionButton == MouseButtons.RightMouseButton)) { // If left button is pressed, start work IsGestureMaking = true; } else if ((e.Action == Enums.MouseAction.LeftButtonReleased && GestureActionButton == MouseButtons.LeftMouseButton) || e.Action == Enums.MouseAction.RightButtonReleased && GestureActionButton == MouseButtons.RightMouseButton) { // If left button is released, stop work IsGestureMaking = false; if (_mousePointsList.Count > 2) { // Get gesture that was doing var gesture = DetectGesture(); if (!string.Equals(gesture.Name, "-1", StringComparison.Ordinal) && gesture.CheckPoinstArray != null) { var eventArgs = new MouseGestureEventArgs(gesture.Name, gesture.CheckPoinstArray, DateTime.Now.Ticks); AddEventToHistory(eventArgs); e.Handled = true; Logger.Instance.Information($"Mouse gesture detected by {nameof(MouseAndKeyboardHookService)}."); MouseGestureDetected?.Invoke(this, eventArgs); } } _mousePointsList.Clear(); } else if (e.Action == Enums.MouseAction.MouseMove) { // If the mouse is moved, add point to coords list if (IsGestureMaking) { _mousePointsList.Add(e.Coords); } } }
private void mouseGesturesTest_Gesture(object sender, MouseGestureEventArgs e) { try { System.Diagnostics.Process process = new System.Diagnostics.Process(); process.StartInfo.FileName = GestureConfiguration.Instance.ResolveCommand(e.Gesture); process.Start(); } catch (Exception) { // No hay comando configurado para el gesto detectado } foreach (PictureBox pb in mouseGestureDisplay) { if ((MouseGesture)pb.Tag == e.Gesture) { //load image from the resources pb.Image = new Bitmap(Assembly.GetExecutingAssembly().GetManifestResourceStream( getResourceName(e.Gesture, true))); // timerReset.Start(); return; } } }
private void gesturehandler_OnMouseGestureToTopOrBottom(object sender, MouseGestureEventArgs e) { ChartZoomHelper.SetChartMouseMoveTopOrBottom(this.chartView, e.Delta); }
private void gesturehandler_OnMouseGestureToLeftOrRight(object sender, MouseGestureEventArgs e) { ChartZoomHelper.SetChartMouseMoveLeftOrRight(this.chartView, e.Delta); }
private void mouseGesturesTest_Gesture(object sender, MouseGestureEventArgs e) { foreach (PictureBox pb in mouseGestureDisplay) { if (( string )pb.Tag == e.Gesture.ToString()) { //load image from the resources pb.Image = new Bitmap(Assembly.GetExecutingAssembly().GetManifestResourceStream( getResourceName(e.Gesture.Motions, true))); timerReset.Start(); string move = (string)pb.Tag; switch (move) { case "U": Process.Start("https://www.google.co.in/search?rlz=1C1CHBF_enIN725IN725&q=weather&oq=weather&gs_l=serp.3..0i67k1l10.30821.32822.0.35836.7.7.0.0.0.0.374.1235.0j5j1j1.7.0....0...1.1.64.serp..0.7.1231...0j0i131k1.45U3X1pvxY0"); break; case "D": Process.Start("C:/Program Files/Android/Android Studio/bin/studio64.exe"); break; case "RDR": Process.Start("https://www.zomato.com/india"); break; case "R": Process.Start("C:/Program Files (x86)/Git/cmd/git-gui.exe"); break; case "L": Process.Start("wmplayer.exe"); break; case "UDU": Process.Start("C:/Program Files (x86)/Notepad++/notepad++.exe"); break; case "UDUD": Process.Start("C:/Program Files (x86)/Mission Planner/MissionPlanner.exe"); break; case "DUDU": Process.Start("C:/Program Files/Windows NT/Accessories/wordpad.exe"); break; case "DU": Process.Start("C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/Common7/IDE/devenv.exe"); break; case "URDL": Process.Start("mspaint.exe"); break; case "UR": Process.Start("control.exe"); break; case "UL": Process.Start("https://mail.google.com/"); break; case "RU": Process.Start("https://www.youtube.com/"); break; case "LU": Process.Start("https://auth.udacity.com/sign-in?next=https%3A%2F%2Fclassroom.udacity.com%2Fauthenticated"); break; case "RD": Process.Start("https://github.com/sheetal1996"); break; case "LD": Process.Start("explorer.exe"); break; case "DR": Process.Start("https://in.linkedin.com/"); break; case "DL": Process.Start("calc.exe"); break; default: break; } return; } } }
/// <summary> /// 方向和笔序识别结果匹配和处理 /// </summary> /// <param name="args"></param> void gesture_GestureMatchEvent(MouseGestureEventArgs args) { //记录操作事件与持续时间 recordOperateEvent(args.Present); switch (args.Present) { case "keyFrameAnnotation": //if (startIndex != int.MinValue && startIndex == endIndex && _inkCollector.IsShowUnbrokenKeyFrame&&_inkCollector.DefaultSummarizationNum==0) //{ // if (_keyFrameAnnotation != null) // { // _inkCollector._mainPage.LayoutRoot.Children.Remove(_keyFrameAnnotation); // _keyFrameAnnotation = null; // } // _keyFrameAnnotation = new KeyFrameAnnotation(); // KeyFrame selectKeyFrame = videoSummarization.ShowKeyFrames[startIndex]; // _inkCollector.SelectKeyFrames.Add(videoSummarization.ShowKeyFrames[startIndex]); // Dictionary<Stroke, KeyFramesAnnotation> s = selectKeyFrame.Annotations; // //在已经有注释的情况下显示已有的注释 // if (selectKeyFrame.Annotations.Count > 0) // { // KeyValuePair<Stroke, KeyFramesAnnotation> currPair = (from KeyValuePair<Stroke, KeyFramesAnnotation> anno in selectKeyFrame.Annotations // //where anno.Value == _keyFramesAnnotation // select anno).First(); // keyFramesAnnotation = (KeyFramesAnnotation)(currPair.Value); // foreach (int index in keyFramesAnnotation.relatedKeyFrameIndexes) // { // currPair = (from KeyValuePair<Stroke, KeyFramesAnnotation> anno in videoSummarization.ShowKeyFrames[index].Annotations // where anno.Value == keyFramesAnnotation // select anno).First(); // Stroke stroke = (Stroke)(currPair.Key); // _inkCanvas.Strokes.Add(stroke); // } // _keyFrameAnnotation.InkCanvasAnnotation.Strokes.Add(keyFramesAnnotation.Strokes); // } // else // { // keyFramesAnnotation = new KeyFramesAnnotation(); // VideoSummarizationControl._keyframeControlPanel.setInkFrame(_keyFrameAnnotation._inkFrame); // } // _inkCollector.KeyFramesAnnotation = keyFramesAnnotation; // _inkCollector.KeyFrameAnnotation = _keyFrameAnnotation; // _keyFrameAnnotation.setInkCollector(_inkCollector); // _keyFrameAnnotation.setKeyFramesAnnotation(keyFramesAnnotation,true); // //显示关键帧注释 // _keyFrameAnnotation.Width = keyFramesAnnotation.Width; // _keyFrameAnnotation.Height = keyFramesAnnotation.Height; // _keyFrameAnnotation.VerticalAlignment = VerticalAlignment.Top; // Stroke linkLine; // VideoSummarizationControl._keyframeControlPanel.setInkFrame(_keyFrameAnnotation._inkFrame); // VideoSummarizationControl._keyframeControlPanel.Visibility = Visibility.Visible; // if (videoSummarization.ShowKeyFrameCenterPoints[startIndex].X < videoSummarization.Center.X) // { // _keyFrameAnnotation.HorizontalAlignment = HorizontalAlignment.Left; // //_keyFrameAnnotation._controlPanel.Margin = new Thickness(VideoSummarizationControl.TableGrid.ActualWidth * 0.75 - _keyFrameAnnotation._controlPanel.Width, 0, 0, 0); // VideoSummarizationControl._keyframeControlPanel.HorizontalAlignment = HorizontalAlignment.Right; // if (selectKeyFrame.Annotations.Count == 0) // {//画关键帧到注释框的连线 // linkLine = InkTool.getInstance().DrawLine(videoSummarization.ShowKeyFrameCenterPoints[startIndex].X + inkCanvasSpiralSummarizationMargin.Left, // videoSummarization.ShowKeyFrameCenterPoints[startIndex].Y + inkCanvasSpiralSummarizationMargin.Top, // _keyFrameAnnotation.Margin.Left + _keyFrameAnnotation.Width / 2, // _keyFrameAnnotation.Margin.Top + _keyFrameAnnotation.Height / 2, // _inkCanvas, Color.FromArgb(180, 0, 255, 0)); // selectKeyFrame.Annotations.Add(linkLine, keyFramesAnnotation); // keyFramesAnnotation.relatedKeyFrameIndexes.Add(startIndex); // MoveTimer.Stop(); // } // } // else // { // _keyFrameAnnotation.HorizontalAlignment = HorizontalAlignment.Right; // VideoSummarizationControl._keyframeControlPanel.HorizontalAlignment = HorizontalAlignment.Left; // if (selectKeyFrame.Annotations.Count == 0) // { // linkLine = InkTool.getInstance().DrawLine(videoSummarization.ShowKeyFrameCenterPoints[startIndex].X + inkCanvasSpiralSummarizationMargin.Left, // videoSummarization.ShowKeyFrameCenterPoints[startIndex].Y + inkCanvasSpiralSummarizationMargin.Top, // _inkCanvas.ActualWidth - _keyFrameAnnotation.Width / 2, // _keyFrameAnnotation.Margin.Top + _keyFrameAnnotation.Height / 2, // _inkCanvas, Color.FromArgb(180, 0, 255, 0)); // selectKeyFrame.Annotations.Add(linkLine, keyFramesAnnotation); // keyFramesAnnotation.relatedKeyFrameIndexes.Add(startIndex); // MoveTimer.Stop(); // } // } // _keyFrameAnnotation.Visibility = Visibility.Visible; // _inkCollector._mainPage.LayoutRoot.Children.Add(_keyFrameAnnotation); // moveTimerSecond = 0; // _inkCollector.Mode = InkMode.AddKeyFrameAnnotation; //} //else //{ // //VideoSummarizationControl.TableGrid.ColumnDefinitions[0].Width = new GridLength(VideoSummarizationControl.TableGrid.ActualWidth * 0.25); // //((InkCanvas)_inkCanvas.Children[0]).Margin = new Thickness(0); //} break; case "SpiralFullScreen": //VideoSummarizationControl.TableGrid.ColumnDefinitions[0].Width = new GridLength(0); //((InkCanvas)_inkCanvas.Children[0]).Margin = new Thickness(VideoSummarizationControl.TableGrid.ActualWidth * 0.125,0,0,0); break; default: //Console.WriteLine("default"); break; } }
/// <summary> /// 方向和笔序识别结果匹配和处理 /// </summary> /// <param name="args"></param> void gesture_GestureMatchEvent(MouseGestureEventArgs args) { //记录操作事件与持续时间 recordOperateEvent(args.Present); switch (args.Present) { case "keyFrameAnnotation": if (startIndex != int.MinValue && startIndex == endIndex && _inkCollector.IsShowUnbrokenKeyFrame) { _keyFrameAnnotation = new KeyFrameAnnotation(); KeyFrame selectKeyFrame = videoSummarization.ShowKeyFrames[startIndex]; _inkCollector.SelectKeyFrames.Add(videoSummarization.ShowKeyFrames[startIndex]); Dictionary <Stroke, KeyFramesAnnotation> s = selectKeyFrame.Annotations; //在已经有注释的情况下显示已有的注释 if (selectKeyFrame.Annotations.Count > 0) { KeyValuePair <Stroke, KeyFramesAnnotation> currPair = (from KeyValuePair <Stroke, KeyFramesAnnotation> anno in selectKeyFrame.Annotations //where anno.Value == _keyFramesAnnotation select anno).First(); keyFramesAnnotation = (KeyFramesAnnotation)(currPair.Value); foreach (int index in keyFramesAnnotation.relatedKeyFrameIndexes) { currPair = (from KeyValuePair <Stroke, KeyFramesAnnotation> anno in videoSummarization.ShowKeyFrames[index].Annotations where anno.Value == keyFramesAnnotation select anno).First(); Stroke stroke = (Stroke)(currPair.Key); _inkCanvas.Strokes.Add(stroke); } _keyFrameAnnotation.InkCanvasAnnotation.Strokes.Add(keyFramesAnnotation.Strokes); } else { keyFramesAnnotation = new KeyFramesAnnotation(); } _inkCollector.KeyFramesAnnotation = keyFramesAnnotation; _inkCollector.KeyFrameAnnotation = _keyFrameAnnotation; _keyFrameAnnotation.setInkCollector(_inkCollector); _keyFrameAnnotation.setKeyFramesAnnotation(keyFramesAnnotation, true); //显示关键帧注释 _keyFrameAnnotation.Width = keyFramesAnnotation.Width; _keyFrameAnnotation.Height = keyFramesAnnotation.Height; _keyFrameAnnotation.VerticalAlignment = VerticalAlignment.Top; Stroke linkLine; if (videoSummarization.ShowKeyFrameCenterPoints[startIndex].X < videoSummarization.Center.X) { _keyFrameAnnotation.HorizontalAlignment = HorizontalAlignment.Left; if (selectKeyFrame.Annotations.Count == 0) { //画关键帧到注释框的连线 linkLine = InkTool.getInstance().DrawLine(videoSummarization.ShowKeyFrameCenterPoints[startIndex].X + inkCanvasSpiralSummarizationMargin.Left, videoSummarization.ShowKeyFrameCenterPoints[startIndex].Y + inkCanvasSpiralSummarizationMargin.Top, _keyFrameAnnotation.Margin.Left + _keyFrameAnnotation.Width / 2, _keyFrameAnnotation.Margin.Top + _keyFrameAnnotation.Height / 2, _inkCanvas, Color.FromArgb(180, 0, 255, 0)); selectKeyFrame.Annotations.Add(linkLine, keyFramesAnnotation); keyFramesAnnotation.relatedKeyFrameIndexes.Add(startIndex); MoveTimer.Stop(); } } else { _keyFrameAnnotation.HorizontalAlignment = HorizontalAlignment.Right; if (selectKeyFrame.Annotations.Count == 0) { linkLine = InkTool.getInstance().DrawLine(videoSummarization.ShowKeyFrameCenterPoints[startIndex].X + inkCanvasSpiralSummarizationMargin.Left, videoSummarization.ShowKeyFrameCenterPoints[startIndex].Y + inkCanvasSpiralSummarizationMargin.Top, _inkCanvas.ActualWidth - _keyFrameAnnotation.Width / 2, _keyFrameAnnotation.Margin.Top + _keyFrameAnnotation.Height / 2, _inkCanvas, Color.FromArgb(180, 0, 255, 0)); selectKeyFrame.Annotations.Add(linkLine, keyFramesAnnotation); keyFramesAnnotation.relatedKeyFrameIndexes.Add(startIndex); MoveTimer.Stop(); } } _keyFrameAnnotation.Visibility = Visibility.Visible; _inkCollector._mainPage.LayoutRoot.Children.Add(_keyFrameAnnotation); _inkCollector.Mode = InkMode.AddKeyFrameAnnotation; } else { //VideoSummarizationControl.TableGrid.ColumnDefinitions[0].Width = new GridLength(VideoSummarizationControl.TableGrid.ActualWidth * 0.25); } break; case "SpiralFullScreen": //VideoSummarizationControl.TableGrid.ColumnDefinitions[0].Width = new GridLength(0); break; default: //Console.WriteLine("default"); break; } }