public override void _presenter_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { Stroke lastStroke = _inkCanvas.Strokes.Last(); if (!(_startPoint.X == 0 && _startPoint.Y == 0)) { //先清空原来选中的关键帧序列 //clearPreMessage(); _currPoint = e.GetPosition(_inkCanvas); if (_startPoint.X < (TableGrid.ActualWidth - 300) * 0.5) { _currPoint.X -= ((InkCanvas)_inkCanvas.Children[0]).Margin.Left; _currPoint.Y -= ((InkCanvas)_inkCanvas.Children[0]).Margin.Top; endIndex = _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationLeft.getSelectedKeyFrameIndex(_currPoint); } //右边的螺旋摘要 else { Point endPointRight = e.GetPosition((InkCanvas)_inkCanvas.Children[1]); endIndex = _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationRight.getSelectedKeyFrameIndex(endPointRight); } if (startIndex != int.MinValue && endIndex != int.MinValue && startIndex != endIndex) { if (startIndex > endIndex) { int temp = startIndex; startIndex = endIndex; endIndex = temp; } if (_startPoint.X < TableGrid.ActualWidth / 2) { for (int i = startIndex; i <= endIndex; i++) { if (i < _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationLeft.KeyFrames.Count) { Image image = VideoSummarizationTool.KeyFrameToImage(_inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationLeft.KeyFrames[i]); image.Margin = new Thickness(2, _inkCollector._mainPage.VideoSummarizationControl.keyFrameList._inkCanvas.Children.Count * 84, 0, 0); _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationLeft.KeyFrames[i].Image = VideoSummarizationTool.KeyFrameToImage(_inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationLeft.KeyFrames[i]); selectKeyFrames.Add(_inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationLeft.KeyFrames[i].convertToNewKeyFrame()); _inkCollector._mainPage.VideoSummarizationControl.keyFrameList._inkCanvas.Children.Add(image); } } } //右边的螺旋摘要 else { for (int i = startIndex; i <= endIndex; i++) { Image image = VideoSummarizationTool.KeyFrameToImage(_inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationRight.KeyFrames[i]); image.Margin = new Thickness(2, _inkCollector._mainPage.VideoSummarizationControl.keyFrameList2._inkCanvas.Children.Count * 84, 0, 0); _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationRight.KeyFrames[i].Image = VideoSummarizationTool.KeyFrameToImage(_inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationRight.KeyFrames[i]); selectKeyFrames.Add(_inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationRight.KeyFrames[i].convertToNewKeyFrame()); _inkCollector._mainPage.VideoSummarizationControl.keyFrameList2._inkCanvas.Children.Add(image); } } } else { mouseGesture.StopCapture(); } _startPoint.X = 0; _startPoint.Y = 0; _inkCanvas.Strokes.Remove(lastStroke); } }
public override void _presenter_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { Stroke lastStroke = _inkCanvas.Strokes.Last(); if (!(_startPoint.X == 0 && _startPoint.Y == 0)) { //先清空原来选中的关键帧序列 //clearPreMessage(); _currPoint = e.GetPosition(_inkCanvas); if (_currPoint.Y < TableGrid.ActualHeight / 2) { if (_currPoint.X < TableGrid.ActualWidth / 2) { _currPoint.X -= ((InkCanvas)_inkCanvas.Children[0]).Margin.Left; _currPoint.Y -= ((InkCanvas)_inkCanvas.Children[0]).Margin.Top; endIndex = _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationLeft.getSelectedKeyFrameIndex(_currPoint); if (startIndex != int.MinValue && endIndex != int.MinValue) { endKeyFrame = _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationLeft.KeyFrames[endIndex]; endSpiralSummarization = _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationLeft; } _currPoint.X += ((InkCanvas)_inkCanvas.Children[0]).Margin.Left; _currPoint.Y += ((InkCanvas)_inkCanvas.Children[0]).Margin.Top; } //右边的螺旋摘要 else { Point endPointRight = e.GetPosition((InkCanvas)_inkCanvas.Children[1]); endIndex = _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationRight.getSelectedKeyFrameIndex(endPointRight); if (startIndex != int.MinValue && endIndex != int.MinValue) { endKeyFrame = _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationRight.KeyFrames[endIndex]; endSpiralSummarization = _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationRight; } } } else { Point endPointBottom = e.GetPosition((InkCanvas)_inkCanvas.Children[2]); endIndex = _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationBottom.getSelectedKeyFrameIndex(endPointBottom); if (startIndex != int.MinValue && endIndex != int.MinValue) { endKeyFrame = _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationBottom.KeyFrames[endIndex]; endSpiralSummarization = _inkCollector._mainPage.VideoSummarizationControl.SpiralSummarizationBottom; } } if (startKeyFrame != null && endKeyFrame != null && startKeyFrame != endKeyFrame) { startKeyFrame.HyperLink = endKeyFrame; _inkCollector.HyperLinkKeyFrames.Add(startKeyFrame); startKeyFrame.HyperLinkSpiralSummarization = endSpiralSummarization; _inkCanvas.Strokes.Remove(_inkCanvas.Strokes.Last()); InkTool.getInstance().DrawLine(_startPoint.X, _startPoint.Y, _currPoint.X, _currPoint.Y, _inkCanvas, Colors.Red); InkTool.getInstance().drawPoint(_startPoint.X, _startPoint.Y, 8, Colors.Blue, _inkCanvas); } else { mouseGesture.StopCapture(); _inkCanvas.Strokes.Remove(lastStroke); } _startPoint.X = 0; _startPoint.Y = 0; } }
public override void _presenter_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (videoSummarization != null && _startPoint != null && _inkCanvas.Strokes.Count > 0) { Stroke lastStroke = _inkCanvas.Strokes.Last(); //先清空原来选中的关键帧序列 clearPreMessage(); _currPoint = e.GetPosition(_inkCanvas); _currPoint.X -= inkCanvasSpiralSummarizationMargin.Left; _currPoint.Y -= inkCanvasSpiralSummarizationMargin.Top; endIndex = videoSummarization.getSelectedKeyFrameIndex(_currPoint); //记录操作类型与持续时间 recordOperateTrace("UP````````````````````````````````````````````````````Up"); upTime = System.DateTime.Now; if (lastStroke.StylusPoints.Count == 1) { if (startIndex != int.MinValue && startIndex == endIndex && _inkCollector.IsShowUnbrokenKeyFrame) { if (_inkCollector.DefaultSummarizationNum == 0) { mouseGesture.Points.Clear(); } if (GlobalValues.locationQuestions.Count > 0) { if (GlobalValues.CurrLocationId + 1 < GlobalValues.locationQuestions.Count) { if (GlobalValues.locationAnswers[GlobalValues.CurrLocationId].IndexOf(videoSummarization.KeyFrames.IndexOf(videoSummarization.ShowKeyFrames[startIndex]) + 1) != -1) { GlobalValues.CurrLocationId++; GlobalValues.LocationQuestion.setQuestion(GlobalValues.locationQuestions[GlobalValues.CurrLocationId]); VideoSummarizationControl.RecordCurrOperationAndTime("第" + (GlobalValues.CurrLocationId - 1).ToString() + "次定位正确"); GlobalValues.LocationQuestion.TBQuestion.Background = new SolidColorBrush(GlobalValues.LocationQuestionBackGrouds[GlobalValues.CurrLocationId]); } } else { VideoSummarizationControl.RecordCurrOperationAndTime("最后一次定位正确"); switch (GlobalValues.summarizationTypeNo) { case 0: VideoSummarizationControl.Record("Spiral"); break; case 1: VideoSummarizationControl.Record("Tile"); break; case 2: VideoSummarizationControl.Record("Tapestry"); break; } MessageBox.Show("恭喜你完成此项任务!"); VideoSummarizationControl.sWriter.Close(); VideoSummarizationControl.myStream.Close(); Environment.Exit(1); } } //定位视频 if (0 <= startIndex && startIndex < videoSummarization.ShowKeyFrames.Count && VideoSummarizationControl != null) { //定位视频,position的单位是秒 videoSource = videoSummarization.ShowKeyFrames[startIndex].VideoName; VideoSummarizationTool.locateMediaPlayer(VideoSummarizationControl.mediaPlayer, videoSummarization.ShowKeyFrames[startIndex]); //显示超链接 if (hyperLink != null) { VideoSummarizationControl.TableGrid.Children.Remove(hyperLink.Image); } hyperLink = videoSummarization.ShowKeyFrames[startIndex].HyperLink; if (hyperLink != null) { VideoSummarizationControl.hyperLinkPlayer.Visibility = Visibility.Visible; VideoSummarizationTool.locateMediaPlayer(VideoSummarizationControl.hyperLinkPlayer, hyperLink); hyperLinkSpiralSummarization = videoSummarization.ShowKeyFrames[startIndex].HyperLinkSpiralSummarization; VideoSummarizationControl.hyperLinkPlayer.MouseLeftButtonUp += new MouseButtonEventHandler(hyperLinkPlayer_MouseLeftButtonUp); } //记录操作事件与持续时间 recordOperateEvent("locate::::::::::::::::::::::::::::::::::::::Locate"); } } } else { if (_inkCollector.DefaultSummarizationNum == 0) { mouseGesture.StopCapture(); } } _startPoint.X = 0; _startPoint.Y = 0; _inkCanvas.Strokes.Remove(lastStroke); } }