public override void _presenter_MouseMove(object sender, System.Windows.Input.MouseEventArgs e) { if (this.VideoSummarizationControl == null) { this.VideoSummarizationControl = _inkCollector._mainPage.VideoSummarizationControl; } if (_startPoint.X == 0 && _startPoint.Y == 0) { _currPoint = e.GetPosition(_inkCanvas); _currPoint.X -= inkCanvasSpiralSummarizationMargin.Left; _currPoint.Y -= inkCanvasSpiralSummarizationMargin.Top; currIndex = videoSummarization.getSelectedKeyFrameIndex(_currPoint); //记录操作类型与持续时间 recordOperateTrace("MOVE"); if (currIndex != int.MinValue && currIndex != preIndex && _inkCollector.IsShowUnbrokenKeyFrame) { moveTimerSecond = 0; MoveTimer.Start(); clearPreMessage(); currIndex = currIndex >= videoSummarization.ShowKeyFrames.Count ? videoSummarization.ShowKeyFrames.Count - 1 : currIndex; currIndex = (currIndex == -1 ? 0 : currIndex); Image currImage = InkConstants.getImageFromName(videoSummarization.ShowKeyFrames[currIndex].ImageName); currImage.Width = 300; currImage.Height = 200; currImage.Margin = new Thickness((VideoSummarizationControl.summarization._inkCanvas.ActualWidth - currImage.Width) / 2, 200, 0, 0); tapestrySummarization.ParentInkcanvas.Children.Add(currImage); preImage = currImage; preIndex = currIndex; } else if (currIndex == int.MinValue) { if (preImage != null) { _inkCanvas.Children.Remove(preImage); } moveTimerSecond = 0; } //显示移动轨迹 if (moveStroke != null) { moveStroke.StylusPoints.Add(new StylusPoint(_currPoint.X, _currPoint.Y)); if (moveStroke.StylusPoints.Count > 300) { moveStroke.StylusPoints.RemoveAt(0); } } else { StylusPointCollection spc = new StylusPointCollection(); spc.Add(new StylusPoint(_currPoint.X, _currPoint.Y)); moveStroke = new Stroke(spc); moveStroke.DrawingAttributes.Color = Colors.Transparent; moveStroke.DrawingAttributes.Width = 3; moveStroke.DrawingAttributes.Height = 3; _inkCanvas.Strokes.Add(moveStroke); } } else { _currPoint = e.GetPosition(_inkCanvas); if (startIndex != int.MinValue && _currPoint.X > 0) { left = videoSummarization.InkCanvas.Margin.Left + _currPoint.X - _prePoint.X; //if (left <= 0 && left >VideoSummarizationControl.summarization._inkCanvas.ActualWidth -tapestrySummarization.Width ) //{ videoSummarization.InkCanvas.Margin = new Thickness(left, videoSummarization.InkCanvas.Margin.Top, 0, 0); //} if (left > 0) { left = 0; timebar.Show_EndTime = VideoSummarizationControl.summarization._inkCanvas.ActualWidth - videoSummarization.InkCanvas.Margin.Left; } else if (left < -tapestrySummarization.Width + VideoSummarizationControl.summarization._inkCanvas.ActualWidth) { left = videoSummarization.InkCanvas.Margin.Left; timebar.Show_EndTime = -left + tapestrySummarization.Width + videoSummarization.InkCanvas.Margin.Left; } else { timebar.Show_EndTime = -left + VideoSummarizationControl.summarization._inkCanvas.ActualWidth; } timebar.Show_StartTime = -left; // timebar.Show_EndTime = -left + VideoSummarizationControl.summarization._inkCanvas.ActualWidth; timebar.computeLocation(); _prePoint = _currPoint; } if (startIndex == int.MinValue && mouseGesture != null) { mouseGesture.Capturing((int)_currPoint.X, (int)_currPoint.Y); } //记录操作类型与持续时间 recordOperateTrace("MOVE"); } }