1.2: miscellaneous tool and command features

We have added a WheelBehavior enumerated type and DiagramTool.WheelBehavior property. This property controls the behavior of DiagramTool.StandardMouseWheel for mouse wheel events. You can now turn off or change standard behaviors for mouse wheel events when unmodified or when modified with Control or Shift.

We have added a TextEditingStarting enumerated type and TextEditingTool.Starting property. This property controls how and when the user can start in-place editing of text. In particular, you can control whether the Part must be selected before a click on a TextBlock with the go:Part.TextEditable attached property set to true will start in-place editing of the string.

You can now use the LinkingTool in a modal fashion, by setting the LinkingTool.StartElement property first, so that it doesn’t depend on Diagram.FirstMousePointInModel to find the starting port.

We have added the GraphLinksModel.ValidUnconnectedLinks property. If you set this, the behaviors of the linking tools’ link validity predicates change. LinkingTool will allow the drawing of a partly-connected link. RelinkingTool allows reconnecting a link to nothing and to allow reconnecting an unconnected link end to a valid port.

We have added a DraggingTool.DraggableLinks property, to control whether the user may drag individual links in order to disconnect them and to perhaps reconnect them at other ports. Note that this functionality requires setting the GraphLinksModel.ValidUnconnectedLinks property.

You can control which element of a Node gets resized by the ResizingTool by setting the Part.ResizeElementName attached property.

We have added CommandHandler.DeletingInclusions and CopyingInclusions properties so that you can control whether the Delete and Copy commands should also operate on subtrees of the selected nodes. This is just like the DraggingTool.Inclusions property, with which it shares the same EffectiveCollectionInclusions enumerated type. Note how the improved Incremental Tree sample now customizes the Diagram:

<go:Diagram.CommandHandler> <go:CommandHandler DeletingInclusions="SubTree" CopyingInclusions="SubTree" /> </go:Diagram.CommandHandler> <go:Diagram.DraggingTool> <gotool:DraggingTool Inclusions="SubTree" CopiesEffectiveCollection="True" /> </go:Diagram.DraggingTool>