Partager via


NodeShape.BoundsRules, propriété

Règle de limites qui restreint la manière dont l'utilisateur peut mettre à jour la taille et la position du rectangle englobant. Méthode override pour retourner un BoundsRules.

Espace de noms :  Microsoft.VisualStudio.Modeling.Diagrams
Assembly :  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (dans Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll)

Syntaxe

'Déclaration
Public Overridable ReadOnly Property BoundsRules As BoundsRules
public virtual BoundsRules BoundsRules { get; }

Valeur de propriété

Type : Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules

Notes

Substituez BoundsRules dans votre classe de forme pour limiter comment l'utilisateur peut déplacer ou de reporter à la côte une forme. Par exemple, vous pouvez empêcher l'utilisateur de déplacer une forme hors ou dans d'une zone particulière, ou vous pouvez limiter la largeur et la hauteur aux plages spécifiques ou des proportions. Les règles sont appliquées pendant que l'utilisateur fait glisser la forme ou ses côtés ou angles, et l'utilisateur voit les déplacements du site fantôme personnaliser être limité selon vos règles.

Cette propriété doit retourner une instance d'une classe qui implémente BoundsRules. Votre implémentation de BoundsRules doit avoir un M:Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules.GetCompliantBounds(Microsoft.VisualStudio.Modeling.Diagrams.ShapeElement,Microsoft.VisualStudio.Modeling.Diagrams.RectangleD)de méthode. Cette méthode est appelée plusieurs fois pendant que l'utilisateur fait glisser la forme. La méthode est fournie avec limites proposées, qui représentent la taille et la positionner que l'utilisateur essaie de définir. Elle doit retourner les limites autorisées par votre règle.

Aucune contrainte n'est appliquée si BoundsRules retourne nullune référence null (Nothing en Visual Basic).

Notes

Si vous souhaitez répondre à une modification de la taille ou de position après qu'elle ne se produise, par exemple pour ajuster les positions des formes adjacentes, créez un ChangeRule pour observer la propriété d'AbsoluteBounds.Consultez l'exemple dans AbsoluteBoundsDomainPropertyId.Si vous souhaitez mettre à jour les valeurs en dehors du magasin, remplacez la OnAbsoluteBoundsChanged.

Exemples

Cet exemple contraint les formes de classe MyShape pour avoir une largeur minimale spécifiée, et une ration spécifique de haut en large.

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

Sécurité .NET Framework

Voir aussi

Référence

NodeShape Classe

Microsoft.VisualStudio.Modeling.Diagrams, espace de noms