Beispiel #1
0
        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;
            }
        }
Beispiel #3
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);
            }
        }