Makes sense. Unfortunately, I'm not sure this applies to my situation, since none of the shapes in my diagram overlap. It's just a few rectangles and connectors between them.
I'm loading a previously created diagram from file instead of generating it programmatically, so I don't have much control over the shape order or positioning. All I do is loop through the shapes to assign proper InteractivityStyles as described in my original post. Then when I click on one of my connectors, for some reason a rectangle in a different part of the diagram is chosen as the shape I clicked on.
On the same diagram, if I don't use the AjaxRedirectTool but instead handle the AsyncClick event and do my own hit testing, the correct shapes are returned for all clicks:
protected void NDrawingView1_AsyncClick(object _sender, EventArgs _e)
{
var args = _e as NCallbackMouseEventArgs;
NNodeList nodes = NDrawingView1.HitTest(args);
}
I'm not sure what the difference is between that code and the hit testing that AjaxRedirectTool provides.