LayoutManager
Diese Klasse ist für die automatische Positionierung aller Knoten im Diagramm verantwortlich.
Erbt von: FrameworkElement
Konstruktoren
public LayoutManager()
layoutManager = LayoutManager()
Der Konstruktor für den Standard-Layout-Manager, der der Anfangswert von LayoutManager ist.
Eigenschaften
public bool Animated { get; set; }
value = layoutManager.Animated
layoutManager.Animated = value
Bestimmt oder legt fest, ob eine animierte Bewegung die Knoten von ihren aktuellen Positionen in ihre festgelegten Positionen verschieben soll.
public bool AnimationDisablesDiagram { get; set; }
value = layoutManager.AnimationDisablesDiagram
layoutManager.AnimationDisablesDiagram = value
Gibt oder legt fest, ob das Diagramm während einer Layout-Animation deaktiviert ist.
public int AnimationTime { get; set; }
value = layoutManager.AnimationTime
layoutManager.AnimationTime = value
Bestimmt oder stellt die Zeit in Millisekunden ein, die eine Animation benötigen sollte.
public Point DefaultLocation { get; set; }
value = layoutManager.DefaultLocation
layoutManager.DefaultLocation = value
Bestimmt oder legt den Ort fest, von dem aus nicht positionierte Knoten am Anfang der Animation erscheinen.
public Diagram Diagram { get; internal set; }
value = layoutManager.Diagram
layoutManager.Diagram = value
Erhaltet das Diagramm, für das dieses LayoutManager automatische Layouts ausführt.
public LayoutInitial Initial { get; set; }
value = layoutManager.Initial
layoutManager.Initial = value
Bekommt oder legt fest, unter welchen Bedingungen eine "Initialisierung" oder "Reset" des Modells dazu führen soll, dass Layouts ungültig gemacht werden.
public bool SkipsInvalidate { get; set; }
value = layoutManager.SkipsInvalidate
layoutManager.SkipsInvalidate = value
Bestimmt oder legt fest, ob LayoutChange nichts tun soll, wenn ein Teil hinzugefügt / entfernt / geändert wird.
Methoden
public virtual bool CanLayoutPart(Part p, IDiagramLayout lay)
result = layoutManager.CanLayoutPart(p, lay)
Dieses Prädikat entscheidet darüber, ob ein Teil am Layout eines IDiagramLayout teilnehmen soll.
- p
- Ein Knoten oder Link
- lay
- das Layout, das für die Positionierung des Teils verantwortlich sein könnte
Rückgabe: Wahr, wenn das Teil sichtbar ist und wenn das Teil LayoutId nicht "None" ist und entweder "All" oder der gleiche Wert wie die ID des Layouts ist. False für alle Verzierungen und für alle Knoten, die IsLinkLabel sind, und für alle Gruppen, die kein Layout haben.
public virtual void InvalidateLayout(Part p, LayoutChange change)
layoutManager.InvalidateLayout(p, change)
Erklären Sie, dass das IDiagramLayout, das ein bestimmtes Teil enthält, jetzt ungültig ist und möglicherweise bald erneut durchgeführt werden muss.
- p
- muss ein Teil sein
- change
- ein Hinweis auf den Grund für die Notwendigkeit eines neuen Layouts; Dies wird verwendet, um zu entscheiden, ob ein Layout wirklich benötigt wird.
public virtual void LayoutDiagram(LayoutInitial init, bool immediate)
layoutManager.LayoutDiagram(init, immediate)
Fordern Sie ein Relayout aller ungültigen Layouts in diesem Diagramm an.
- init
- Wenn der Wert InvalidateAll ist, werden alle IDiagramLayouts für ungültig erklärt und alle werden zu dem durch das Argument angegebenen Zeitpunkt ausgeführt. Wenn der Wert InvalidateIfNodesUnlocated ist, wird IDiagramLayouts nur dann für ungültig erklärt, wenn sie für Nodes verantwortlich sind, die keinen Standort haben, weil ihre X- und/oder Y-Werte Double.NaN sind. Wenn der Wert ValidateAll ist, werden alle IDiagramLayouts für gültig erklärt und es wird kein Layout angezeigt, bis etwas anderes passiert, das ein Layout ungültig macht. Wenn der Wert Keine ist, wird keine Layout-Gültigkeit geändert - alle ungültigen Layouts werden zum angegebenen Zeitpunkt ausgeführt.
- immediate
- Wenn dies zutrifft, führt diese Methode ein sofortiges Layout aus, wenn dies nicht stimmt, plant diese Methode ein baldiges Layout.
public void LayoutDiagram()
layoutManager.LayoutDiagram()
Fordern Sie eine Neulayout aller Knoten und Links in diesem Diagramm.
public void MoveAnimated(Node node, Point newpos)
layoutManager.MoveAnimated(node, newpos)
Dies setzt im Grunde nur den Wert von Position, aber mit animierter Bewegung.
- node
- newpos
- eine neue Position in Modellkoordinaten
protected virtual void PerformLayout()
layoutManager.PerformLayout()
Diese Methode wird asynchron aufgerufen, um ein Diagramm zu entwerfen.
Felder
public static readonly DependencyProperty AnimatedProperty
value = LayoutManager.AnimatedProperty
Bestimmt die Animated Dependency-Eigenschaft.
public static readonly DependencyProperty AnimationDisablesDiagramProperty
value = LayoutManager.AnimationDisablesDiagramProperty
Identifiziert die Abhängigkeitseigenschaft AnimationDisablesDiagram.
public static readonly DependencyProperty AnimationTimeProperty
value = LayoutManager.AnimationTimeProperty
Identifiziert die Abhängigkeitseigenschaft AnimationTime.
public static readonly DependencyProperty DefaultLocationProperty
value = LayoutManager.DefaultLocationProperty
Identifiziert die Abhängigkeitseigenschaft DefaultLocation.
public static readonly DependencyProperty InitialProperty
value = LayoutManager.InitialProperty
Bestimmt die Eigenschaft Initial Dependency.