Freigeben über


NodeShape.BoundsRules-Eigenschaft

Grenzen eines schränken steuern, wie der Benutzer die Größe und die Position des umschließenden Rechtecks aktualisieren kann.Überschreiben, um ein BoundsRules zurückzugeben.

Namespace:  Microsoft.VisualStudio.Modeling.Diagrams
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 (in Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0.dll)

Syntax

'Declaration
Public Overridable ReadOnly Property BoundsRules As BoundsRules
public virtual BoundsRules BoundsRules { get; }

Eigenschaftswert

Typ: Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules

Hinweise

Überschreiben Sie BoundsRules in der Form Klasse, um einzuschränken, wie der Benutzer fortfahren kann, oder ändern Sie eine Form groß.Sie können beispielsweise den Benutzer beim Verschieben einer Form oder in einem bestimmten Bereichs werden, oder Sie können die Breite und die Höhe zu bestimmten Bereichen oder Anteilen beschränken.Die Regeln werden angewendet, während der Benutzer die Form oder seine Seiten oder Ecken zieht und der Benutzer die Bewegungen der inaktiven Form sieht, die gemäß den Regeln eingeschränkt wird.

Diese Eigenschaft muss eine Instanz einer Klasse zurückgeben, die BoundsRulesimplementiert.Die BoundsRules-Implementierung sollte ein Methoden M:Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules.GetCompliantBounds(Microsoft.VisualStudio.Modeling.Diagrams.ShapeElement,Microsoft.VisualStudio.Modeling.Diagrams.RectangleD)haben.Diese Methode wird wiederholt aufgerufen, wenn der Benutzer die Form ziehen.Die Methode wird mit den vorgeschlagenen Grenzen enthalten, die die Größe darstellt und positionieren, dass der Benutzer versucht festzulegen.Es sollte die Begrenzungen zurück, die von der Regel nicht zulässig sind.

Es wird keine Beschränkung angewendet, wenn BoundsRulesnullein Nullverweis (Nothing in Visual Basic)zurückgibt.

HinweisHinweis

Wenn Sie auf eine Änderung der Größe oder Position reagieren möchten, nachdem sie aufgetreten ist, z. B. um die Positionen von benachbarten Formen anpassen, erstellen Sie ein ChangeRule, um die AbsoluteBounds-Eigenschaft zu beobachten.Siehe das Beispiel in AbsoluteBoundsDomainPropertyId.Wenn Sie Werte außerhalb des Speichers aktualisieren möchten, überschreiben Sie OnAbsoluteBoundsChanged.

Beispiele

Dies schränkt beispielsweise die Formen der Klasse MyShape ein, um eine bestimmte minimale Breite und einer bestimmten Zuteilung von Höhe zu Breite haben.

// MyShape is defined in DSL Definition.
public partial class MyShape 
{
    public override BoundsRules BoundsRules
    {
        get
        {
            return new MyShapeBoundsRule();
        }
    }
}
public class MyShapeBoundsRule : BoundsRules
{
    public override RectangleD GetCompliantBounds(ShapeElement shape, RectangleD proposedBounds)
    {
       // Do not modify bounds if reading from file.
        if (shape.Store.InSerializationTransaction)
          return proposedBounds;
        MyShape myShape = shape as MyShape;
        if (myShape == null) return proposedBounds;
        RectangleD approvedBounds = new RectangleD();
        // In this rule, any Location is OK:
        approvedBounds.Location = proposedBounds.Location;
        // But the height and width are constrained:
        approvedBounds.Height = Math.Max(proposedBounds.Height, 1.0);
        approvedBounds.Width = approvedBounds.Height * 1.618;
        return approvedBounds;
    }    
 }

.NET Framework-Sicherheit

Siehe auch

Referenz

NodeShape Klasse

Microsoft.VisualStudio.Modeling.Diagrams-Namespace