private void Port_MouseDown(object sender, MouseButtonEventArgs e)
        {
            var port = sender as ExternalPort;

            // use half of a column as margin before the line to get line centered
            double width  = Grid.ColumnDefinitions[0].ActualWidth;
            double height = Grid.RowDefinitions[0].ActualHeight;
            Point  point  = port.TranslatePoint(new Point(width / 2, height / 2), Grid);

            WireBuilder.AddPoint(point, port.IsInput);
        }
        private void GatePortClicked(GateView gate, GatePortView port)
        {
            var point = port.TransformToAncestor(Grid).Transform(new Point(port.ActualWidth / 2, port.ActualHeight / 2));

            WireBuilder.AddPoint(point, !port.IsInput);
        }