Vielleicht solltest du dir mal den Sourcecode von
Openwire anschauen, da sind sicher einige Elemente dabei, die nützlich sein könnten.
Wenn du nicht alles selbst mit Canvas machen willst, gibt es auch schon Komponenten käuflich zu erwerben, die für dein Ansinnen in Betracht kommen könnte,
nämlich z.B. das
TMS Diagram Studio.