Freigeben über


NodeShape.BoundsRules-Eigenschaft

Begrenzungsregeln beschränken, 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.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.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 Formklasse, um einschränken, wie der Benutzer eine Form bewegen oder Größe ändern kann. Beispielsweise können Sie den Benutzer am Verschieben einer Form aus oder in einem bestimmten Bereich zu verhindern, oder Sie können die Breite und Höhe zu bestimmten Bereichen oder die proportional und beschränken. Die Regeln werden angewendet, während der Benutzer die Form oder die Seiten oder Ecken wird und der Benutzer die Bewegungen der inaktiven Form sieht, die gemäß den Regeln beschränkt ist.

Diese Eigenschaft sollte eine Instanz einer Klasse zurückgeben, die BoundsRules implementiert. die BoundsRules-Implementierung sollte Methoden ein M:Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules.GetCompliantBounds(Microsoft.VisualStudio.Modeling.Diagrams.ShapeElement,Microsoft.VisualStudio.Modeling.Diagrams.RectangleD). Diese Methode wird wiederholt aufgerufen, während der Benutzer die Form ziehen. Die Methode wird mit den vorgeschlagenen Grenzen bereitgestellt, die die Größe darstellen und positionieren, dass der Benutzer versucht festzulegen. Sie sollte den Grenzen zurückgeben, die von der Regel zulässig sind.

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

Hinweis

Wenn Sie auf eine Änderung der Größe und der Position reagieren möchten, nachdem sie aufgetreten ist, beispielsweise, um die Positionen von benachbarten Formen anzupassen, erstellen Sie ein ChangeRule, um auf 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 die Formen der Klasse MyShape ein, um eine angegebene Mindestbreite und eine spezielle Zuteilung der Höhe zur Breite verfügen.

// 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