The drag-able TextBlocks in the node

I want each Node to have its own TextBlock,but each TextBlock can be dragged around a node,rather than TextBlock and Shape are vertical or horizontal distribution.

I want to drag the Node from the Palette to bring its own TextBlock, and TextBlock can drag the position arbitrarily.
And, I want a Node to have multiple TextBlocks, and they’re related, like I’m dragging Node, and TextBlocks can be moved together.
If I choose the aa node, can the bb and cc associated with the aa be selected together and be dragged together?

You seem to be asking two separate questions here.

FIrst, for the ability for users to drag around a TextBlock (or any piece of a Node) around the body of its Node, use a Spot Panel and the extension class. That is demonstrated by the State Chart with Draggable Node Labels sample.

Second, I’m assuming that there are three Nodes shown in your screenshot. Normally each of those three Nodes (which I’ll call “aa”, “bb”, and “cc”) will be independently selectable and movable.

However the DraggingTool has the ability to automatically move nodes other than those that are selected. The simplest case of this is when you set DraggingTool | GoJS API to true. That will cause the user’s dragging of a node to also drag along its subtree. You can see that behavior in several samples, such as Incremental Tree and Mind Map.

But if you want to automatially drag around other nodes besides all those that are in the subtrees of the selection, then you can override DraggingTool | GoJS API to decide dynamically exactly which nodes to drag along, if any. This is demonstrated by the Seating Chart and the Pipes samples.

Walter,thank you very much for your help!