Goxam: adjust link horizontally when adjusting End


Open the GoWPFDemo45 solution and make following changes.

  1. Open SequentialFunction.xaml and Add following code to the link template.

<go:Route Routing=“Orthogonal” Adjusting=“End” />
2. Add following code to the textblock inside node templated so that the textblock becomes linkable.
go:Node.LinkableFrom=“True” go:Node.LinkableTo=“True”

3. Compile and run the solution and open the SequentialFunction from list
4. Keep only two nodes and delete everything from the diagram

  1. Create a new link between these two nodes now.

  2. Link gets added

  3. Now move the nodes so that they appear something like as shown below.

  4. Now select the link and try to move the grip points horizontally.

The link does not allow to get adjusted horizontally in this case. It always gets adjusted vertically.
How do I adjust the link horizontally? How to enable the horizontal grip cursor in this case?

But if you were to reshape the link by moving the point at that handle horizontally, it would be impossible to maintain orthogonality unless additional points were added to the route.

It is possible for you to implement what you want, but it is tedious work to recreate what we have already implemented slightly differently. I believe you need to override LinkReshapingTool.UpdateAdornments and DoReshape methods.

Can’t I just enable the horizontal cursor for the points with maintaining the orthogonality?

It is easy to override UpdateAdornments to give that handle a different cursor. But it is the implementation of DoReshape that actually supports moving the corresponding point in the Route while heeding all of the expected constraints on that point.