Exemple #1
0
        private void PushPendingDragLine()
        {
            if (dragLine != null)
            {
                return;
            }

            var layer      = this.Renderer as StoryboardLayer;
            var storyboard = layer.Storyboard;

            dragLine = storyboard
                       .CreatePendingConnectedLine(
                GetDragLineStartPosition,
                GetDragLineEndPosition);

            dragLine.Line.Opacity = 0.5;

            dragLine.Released += DragLine_Released;
        }
Exemple #2
0
        private void PopPendingDragLine()
        {
            if (dragLine == null)
            {
                return;
            }

            // Release -> Released -> OnDragLineReleased -> PopPendingDragLine
            if (dragLine.IsConnected)
            {
                dragLine.Release();
                return;
            }

            dragLine.Released -= DragLine_Released;
            dragLine           = null;

            var layer      = this.Renderer as StoryboardLayer;
            var storyboard = layer.Storyboard;

            // Pop Pending Drag Line
            storyboard.PopPendingConnectedLine();
        }
Exemple #3
0
        /// <summary>
        /// 연결점을 시각적으로 동기화시켜주는 <see cref="LineConnectorBase"/>를 생성합니다.
        /// </summary>
        /// <param name="startPosition"></param>
        /// <param name="endPosition"></param>
        /// <returns></returns>
        public LineConnectorBase CreateConnectedLine(
            Func <LineConnectorBase, Point> startPosition,
            Func <LineConnectorBase, Point> endPosition)
        {
            var connector = new LineConnectorBase(this, startPosition, endPosition);

            if (ZoomPanel != null)
            {
                connector.Line.LineBrush = Brushes.DimGray;

                BindingHelper.SetBinding(
                    ZoomPanel, ZoomPanel.ScaleProperty,
                    connector.Line, BezierLine.StrokeThicknessProperty,
                    converter: new ReciprocalConverter()
                {
                    Factor = 2
                });
            }

            LineLayer.Add(connector.Line);
            lineCollection.Add(connector);

            return(connector);
        }