Sometimes people ask about how to have a link that is really two-dimensional, rather than just a stroke with an arrowhead.
The BlockArrow shape in Demo1 provides such an implementation, that also allows interactive adjustment of the thickness of the arrow shaft as well as the angle and length of the arrow head. The end points of the link are specified by the StartPoint and EndPoint properties.
You can use this shape to form a link by using it as the MidLabel of a GoLabeledLink and overriding the link's layout to assign the BlockArrow.StartPoint and .EndPoint. The link's Pen is no longer needed.