public ConnectedLineDrawing(ConnectionPoint start, ConnectionPoint finish)
        {
            start.Subscribe((left, top) =>
            {
                float absLeft;
                float absTop;
                GetAbsolutePosition(out absLeft, out absTop);

                SetAbsolutePosition(left, top);

                Width  = absLeft + Width - left;
                Height = absTop + Height - top;
            });

            finish.Subscribe((left, top) =>
            {
                float absLeft;
                float absTop;
                GetAbsolutePosition(out absLeft, out absTop);

                Width  = left - absLeft;
                Height = top - absTop;
            });
        }