public ConnectorAdorner(DesignCanvas canvas, Connector sourceConnector) : base(canvas) { this.designCanvas = canvas; this.sourceConnector = sourceConnector; drawingPen = new Pen(Brushes.LightSlateGray, 1); drawingPen.LineJoin = PenLineJoin.Round; this.Cursor = Cursors.Cross; }
public Connection(Connector source, Connector sink,ConnectionShapeInfo connectionShapeInfo=null) { var connectionShapInfo = connectionShapeInfo; var designConnectionInfo = (DesignConnectionInfo)null; if (connectionShapeInfo != null) { designConnectionInfo=new DesignConnectionInfo(connectionShapInfo); } else { var shapInfo = new ConnectionShapeInfo(); designConnectionInfo = new DesignConnectionInfo(shapInfo); } var currentDate = DateTime.Now; designConnectionInfo.CreateDate = currentDate; designConnectionInfo.ModifyDate = currentDate; designConnectionInfo.SourceID = source.ParentDesignItem.ID; designConnectionInfo.SourceOrientation = source.Orientation; designConnectionInfo.SinkID = sink.ParentDesignItem.ID; designConnectionInfo.SinkOrientation = sink.Orientation; this.ShapeInfoUnit = new ConnectionShapeInfoUnit(designConnectionInfo); if (designConnectionInfo.SourceSvgBuffer != null) { using (var stream = new MemoryStream(designConnectionInfo.SourceSvgBuffer)) { (this.ShapeInfoUnit as ConnectionShapeInfoUnit).SourceSvgDrawing = SvgHelper.CreateSvgViewBox(stream); } } if (designConnectionInfo.SinkSvgBuffer != null) { using (var stream = new MemoryStream(designConnectionInfo.SinkSvgBuffer)) { (this.ShapeInfoUnit as ConnectionShapeInfoUnit).SinkSvgDrawing = SvgHelper.CreateSvgViewBox(stream); } } this.SetBinding(Connection.TextProperty, BindingHelper.CreateBinding(designConnectionInfo, "Text")); this.SetBinding(DesignCanvas.ZIndexProperty, BindingHelper.CreateBinding(designConnectionInfo, "ZIndex")); designConnectionInfo.PropertyChanged += (obj, e) => { if (e.PropertyName.Equals("PathGeometry")) { UpdateAnchorPosition(); } }; this.ID = Guid.NewGuid(); this.Source = source; this.Sink = sink; //base.Unloaded += new RoutedEventHandler(Connection_Unloaded); //Resolve the issue of swithing tabItem base.SelectChanged += (a, b) => { if (this.IsSelected) ShowAdorner(); else HideAdorner(); }; }
void thumbDragThumb_DragStarted(object sender, DragStartedEventArgs e) { this.HitDesignItem = null; this.HitConnector = null; this.pathGeometry = null; this.Cursor = Cursors.Cross; this.connection.StrokeDashArray = new DoubleCollection(new double[] { 1, 2 }); if (sender == sourceDragThumb) { fixConnector = connection.Sink; dragConnector = connection.Source; } else if (sender == sinkDragThumb) { dragConnector = connection.Sink; fixConnector = connection.Source; } }