I am evaluating the GoXam control for Silverlight 4. The version I am using is v2.0.50727
If you include VisibleChanged in the conditions under which a layout is re-performed, I think you’ll get the first behavior automatically. Several samples do this:
<go:TreeLayout ConditionFlags="Standard VisibleChanged" />
I don’t understand how your two requirements are supposed to work together. Is it the case that once the user has moved a node, the expansion or collapse of that node should not move that node?
Try the Incremental Tree sample. Does this give you the behavior that you are looking for? It has also customized the Diagram.DraggingTool, setting its DraggingTool.Inclusions property to “SubTree”.
Of course you could try substituting TreeLayout for the ForceDirectedLayout that the Incremental Tree sample uses, if that’s what you are looking for.
That was exactly what I wanted.