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; }
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(); }
/// <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); }