F: Wie soll ich Drag & Drop von einem ListView oder TreeView Control zu dem FlowChart Control realisieren?
Hier ist die Vorgehensweise: Der Nutzer selektiert einen Baumknoten in dem Treeview Control, und dann zieht ihn über das FlowChart Control. Während des Ziehens über das FlowChart Control, sieht der Drag-Cursor wie eine Textbox aus. Nach dem Droppen soll eine Textbox in dem FlowChart Control erscheinen.
A: Sie können dies erreichen, indem Sie Control.DoDragDrop von dem TreeView.MouseDown Event-Handler aufrufen, und den Knoten in dem Event DiagramView.DragDrop erstellen. Sehen Sie sich das ListView in dem Beispielprojekt Flowcharter, und einen der "Miscellaneous" Schritte des Beispiels "FCDemo" an.
F: Wie kann man die Text-Editierung einiger Knoten verhindern, wenn AllowInplaceEdit aktiviert wurde?
A: Es gibt ein Validierungsereignis Diagram.NodeTextEditing, das beim Doppelklicken eines Knotens ausgelöst wird. Setzen Sie e.Cancel auf true, um die Text-Editierung einiger Knoten zu unterbinden.
F: Wie kann man Verbindungen zwischen Knoten zeichnen?
Ich habe die Behavior-Eigenschaft des DiagramView-Objekts auf DrawLinks gesetzt, aber beim Ziehen von Knoten zu Knoten geschieht nur Selektieren der zwei Knoten, und keine Verbindung wird dazwischen gezeichnet. Welche Einstellung beeinflusst dieses Verhalten?
A: Überprüfen Sie Diagram.AllowUnanchoredLinks und DiagramNode.AllowOutgoingLinks. Wenn Sie die Erstere desaktiviert haben, können Sie Verbindungen nur von Knoten zeichnen, deren AnchorPattern eingestellt wurde.
F: Wie soll ich folgendes Diagrammverhalten realisieren?
Ich erzeuge Diagramme mit Knoten-Bildern, und möchte, dass der Nutzer im Stande ist, mit einem einzelnen Klick Knoten bewegen zu starten. Außerdem soll es dem Nutzer nicht erlaubt sein, neue Items zu erstellen, und die Größe von gezeichneten Items zu verändern. Soll ich ein Objekt mit Custom-Behavior dafür erstellen?
A: Dies kann durch Einstellung einiger Eigenschaften implementiert werden:
F: Ich suche die einfachste Methode zur dynamischen Änderung der Links-Ankerpunkte an einem Knoten, so dass der Anker am nächsten zu dem Verbindungsknoten ist. Ich möchte, dass sich die Links über den Eingangsknoten nicht kreuzen, wenn die Position des Zielknotens geändert wird.
A: Prüfen Sie, wie sich Verbindungen verhalten, wenn deren Dynamic Eigenschaft aktiv ist. Die Verbindungen werden deren Ursprungs- und Zielpunkte ändern, wenn ein Knoten herumgezogen wird.