Use Bezier Connection.
Change Start / End Handles with Mouse or with SetBezierHandles method in code.
Rotate/ Drag the connection and notice it is being shifted / its geometry changes unexpectedly.
Possible workaround override the RadDiagramConnection like so:
public class CustomConnection : RadDiagramConnection
{
protected override void OnStartPointChanged(System.Windows.Point newValue, System.Windows.Point oldValue)
{
this.ConnectionPoints[0] = new Point(
this.ConnectionPoints[0].X - newValue.X + oldValue.X,
this.ConnectionPoints[0].Y - newValue.Y + oldValue.Y);
base.OnStartPointChanged(newValue, oldValue);
}
protected override void OnEndPointChanged(Point newValue, Point oldValue)
{
this.ConnectionPoints[1] = new Point(
this.ConnectionPoints[1].X - newValue.X + oldValue.X,
this.ConnectionPoints[1].Y - newValue.Y + oldValue.Y);
base.OnEndPointChanged(newValue, oldValue);
}
}
Available in R3 2016 SP