ResizingTool
Der ResizingTool wird verwendet, um die Größe eines Elements interaktiv zu ändern.
Erbt von: DiagramTool
Eigenschaften
protected FrameworkElement AdornedElement { get; set; }
value = resizingTool.AdornedElement
resizingTool.AdornedElement = value
Bekommt oder setzt den aktuellen FrameworkElement, der geändert wird.
protected Node AdornedNode { get; }
value = resizingTool.AdornedNode
Bekommt den aktuellen Knoten, in dem sich AdornedElement befindet.
public Size CellSize { get; set; }
value = resizingTool.CellSize
resizingTool.CellSize = value
Bestimmt oder legt die Zellgröße des ausgewählten Elements fest, so dass die Größenänderung auf ein Vielfaches der Zellgröße beschränkt ist.
protected FrameworkElement Handle { get; set; }
value = resizingTool.Handle
resizingTool.Handle = value
Bekommt oder stellt den aktuellen Größenänderungsgriff ein, der gezogen wird.
public Size MaxSize { get; set; }
value = resizingTool.MaxSize
resizingTool.MaxSize = value
Bekommt oder legt die maximale Größe des ausgewählten Elements fest.
public Size MinSize { get; set; }
value = resizingTool.MinSize
resizingTool.MinSize = value
Bestimmt oder legt die Mindestgröße des ausgewählten Elements fest.
protected Rect OriginalBounds { get; set; }
value = resizingTool.OriginalBounds
resizingTool.OriginalBounds = value
Bekommt oder setzt die Grenzen, in Modellkoordinaten, des AdornedElement, wenn der Benutzer die Größe zu ändern begann.
protected Point OriginalLocation { get; set; }
value = resizingTool.OriginalLocation
resizingTool.OriginalLocation = value
Bestimmt oder legt den Standort in Modellkoordinaten des AdornedNode fest, wenn der Benutzer mit der Größenänderung begonnen hat.
Methoden
public override bool CanStart()
result = resizingTool.CanStart()
Das ResizingTool kann ausgeführt werden, wenn es ein Maus-Down-Ereignis auf einem Größenänderungsgriff gibt.
protected virtual Size ComputeCellSize()
result = resizingTool.ComputeCellSize()
Die Größe sollte ein Vielfaches des Wertes sein, der mit dieser Methode zurückgegeben wird.
Rückgabe: Der CellSize, es sei denn, einer oder beide seiner Breite und Höhe sind Double.NaN oder null. Wenn das der Fall ist, verwendet er die Breite und/oder Höhe des Knotens ResizeCellSize. Aber wenn einer oder beide der Breite und Höhe immer noch Double.NaN oder null sind, sucht er nach einem Raster-Knoten hinter dem AdornedNode, einer, der DragOverSnapEnabled ist, und verwendet seinen DragOverSnapCellSize. Wenn er einen solchen Raster-Knoten nicht finden kann, oder einer oder beide der Breite und Höhe sind NaN, verwendet er den GridSnapCellSize des Diagramms, wenn das Diagramm GridSnapEnabled ist. Schließlich ist es standardmäßig 1x1.
protected virtual Size ComputeMaxSize()
result = resizingTool.ComputeMaxSize()
Die effektive maximale Größenänderung ist das Minimum von MaxSize und FrameworkElement MaxWidth und MaxHeight.
Rückgabe: die gewünschte maximale Größe während der Größenänderung
protected virtual Size ComputeMinSize()
result = resizingTool.ComputeMinSize()
Die effektive minimale Größenänderung ist das Maximum von MinSize und FrameworkElement MinWidth und MinHeight.
Rückgabe: die gewünschte Mindestgröße während der Größenänderung
protected virtual Rect ComputeResize(Point newPoint, Spot spot, Size min, Size max, bool reshape)
result = resizingTool.ComputeResize(newPoint, spot, min, max, reshape)
Wenn Sie einen Punkt im OriginalBounds und einen neuen Punkt erhalten, berechnen Sie den neuen Rect.
- newPoint
- a Punkt in den Modellkoordinaten
- spot
- Der Punkt in den rechteckigen Grenzen, für den der Griff gezogen wird
- min
- das berechnete Rechteck muss mindestens so groß sein wie diese Abmessungen
- max
- das berechnete Rechteck darf nicht größer als diese Abmessungen sein
- reshape
- ob sich das Seitenverhältnis des Rechtecks ändern kann
public override void DoActivate()
resizingTool.DoActivate()
Beginnen Sie mit der Größenänderung.
public override void DoCancel()
resizingTool.DoCancel()
Stellen Sie das OriginalBounds des AdornedElement und stoppen Sie dieses Tool.
public override void DoDeactivate()
resizingTool.DoDeactivate()
Dadurch wird die aktuelle Bearbeitung (StopTransaction) gestoppt.
public override void DoMouseMove()
resizingTool.DoMouseMove()
Call Rect) mit einem neuen, durch den Mauspunkt bestimmten Limit.
public override void DoMouseUp()
resizingTool.DoMouseUp()
Rufen Sie Rect mit einem Rechteck auf der Grundlage des neuesten Mauspunkts auf und heben Sie ein Ereignis mit der Größe "Objekt" an, bevor Sie das Tool stoppen.
protected virtual void DoResize(Rect newr)
resizingTool.DoResize(newr)
Ändern Sie die Breite und / oder Höhe des AdornedElement und vielleicht den Standort des AdornedNode, wenn Sie eine neue rechteckige Grenze für das geschmückte Element erhalten.
- newr
public override void DoStart()
resizingTool.DoStart()
Erfassen Sie die Maus beim Starten dieses Tools.
public override void DoStop()
resizingTool.DoStop()
Lassen Sie die Maus-Erfassung frei, wenn Sie dieses Tool stoppen.
public override void UpdateAdornments(Part part)
resizingTool.UpdateAdornments(part)
Zeigen Sie eine Verzierung mit Größenänderungen an Punkten entlang der Grenze des AdornedElement, wenn der Knoten ausgewählt und sichtbar ist und wenn CanResize wahr ist.
- part
Felder
public static readonly DependencyProperty CellSizeProperty
value = ResizingTool.CellSizeProperty
Identifiziert die Abhängigkeitseigenschaft CellSize.
public static readonly DependencyProperty MaxSizeProperty
value = ResizingTool.MaxSizeProperty
Identifiziert die Abhängigkeitseigenschaft MaxSize.
public static readonly DependencyProperty MinSizeProperty
value = ResizingTool.MinSizeProperty
Identifiziert die Abhängigkeitseigenschaft MinSize.