NodeShape.BoundsRules, propriété
Les règles limites limitent comment l'utilisateur peut mettre à jour la taille et la position du rectangle englobant.Substitution pour retourner un BoundsRules.
Espace de noms : Microsoft.VisualStudio.Modeling.Diagrams
Assembly : Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 (dans Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.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 contraindre 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 insuffisant ou dans d'une zone particulière, ou vous pouvez limiter la largeur et la hauteur aux plages spécifiques ou aux proportions.Les règles sont appliquées pendant que l'utilisateur fait glisser la forme ou côtés ou ses angles, et l'utilisateur voit les déplacements du site fantôme façonner être restreint en fonction de 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 reprises pendant que l'utilisateur fait glisser la forme.La méthode est fournie avec de limites proposées, qui représentent la taille et la positionnent que l'utilisateur essaye 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).
[!REMARQUE]
Si vous souhaitez répondre à une modification de taille ou de position après qu'elle se soit produite, par exemple pour régler 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 des valeurs en dehors de la banque, substituez l'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
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, consultez Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.