Ejemplo n.º 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);
            }
        }