Esempio n. 1
0
        protected override void OnMouseUp(MouseButtonEventArgs e)
        {
            var connections = designerCanvas.Children.OfType <Connection>();

            foreach (var connection in connections)
            {
                connection.IsHitTestVisible = true;
            }

            if (HitConnector != null && HitConnector.IsSinkConnector &&
                (!HitConnector.OnlyOneConnectionCanEnd || !HitConnector.Connections.Any(x => Equals(x.Sink, HitConnector))))

            {
                Connector  sourceConnector = this.sourceConnector;
                Connector  sinkConnector   = this.HitConnector;
                Connection newConnection   = designerCanvas.ConnectionGenerator(sourceConnector, sinkConnector,
                                                                                designerCanvas.PathFinder);

                if (designerCanvas.ConnectionStyle != null)
                {
                    newConnection.Style = designerCanvas.ConnectionStyle;
                }

                this.designerCanvas.setZIndex(newConnection, designerCanvas.Children.Count);
                this.designerCanvas.Children.Add(newConnection);

                this.designerCanvas.raiseDesignerCanvasChanged();
            }
            if (HitDesignerItem != null)
            {
                this.HitDesignerItem.IsDragConnectionOver = false;
            }

            if (this.IsMouseCaptured)
            {
                this.ReleaseMouseCapture();
            }

            AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(this.designerCanvas);

            if (adornerLayer != null)
            {
                adornerLayer.Remove(this);
            }
        }