Condividi tramite


Proprietà NodeShape.BoundsRules

Regole sui limiti che vincolano il modo in cui l'utente può aggiornare le dimensioni e la posizione del rettangolo di delimitazione. Eseguire l'override per restituire BoundsRules.

Spazio dei nomi:  Microsoft.VisualStudio.Modeling.Diagrams
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll)

Sintassi

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

Valore proprietà

Tipo: Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules

Note

Eseguire l'override BoundsRules nella classe della forma per vincolare come è possibile spostare o ridimensionare una forma. Ad esempio, è possibile impedire all'utente di spostare una forma da o in una particolare area o, è possibile limitare la larghezza e l'altezza a intervalli specifici o alle proporzioni. Le regole vengono applicate quando l'utente sta trascinando la forma o i lati o angoli e l'utente esce dai movimenti del fantasma formare essere limitato in base alle regole.

Questa proprietà deve restituire un'istanza di una classe che implementa BoundsRules. L'implementazione di BoundsRules deve avere un M:Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules.GetCompliantBounds(Microsoft.VisualStudio.Modeling.Diagrams.ShapeElement,Microsoft.VisualStudio.Modeling.Diagrams.RectangleD)di metodo. Questo metodo viene chiamato ripetutamente quando l'utente trascina la forma. Il metodo viene fornito con i limiti proposti, che rappresentano le dimensioni e posizione oltre che l'utente tenta di impostare. Deve restituire i limiti consentiti a seconda della regola.

Alcun vincolo è valido se BoundsRules restituisce nullriferimento null (Nothing in Visual Basic).

Nota

Se si desidera rispondere a una modifica di dimensione o la posizione dopo che si è verificata, ad esempio per modificare le posizioni delle forme adiacenti, creare un ChangeRule per osservare la proprietà di AbsoluteBounds.Vedere l'esempio in AbsoluteBoundsDomainPropertyId.Se si desidera aggiornare i valori all'esterno dell'archivio, eseguire l'override dell'OnAbsoluteBoundsChanged.

Esempi

Questo esempio consente di associare le forme di classe MyShape abbia una larghezza minima specificata e una razione specifica di altezza per larghezza.

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

Sicurezza di .NET Framework

Vedere anche

Riferimenti

NodeShape Classe

Spazio dei nomi Microsoft.VisualStudio.Modeling.Diagrams