Compartir a través de


NodeShape.BoundsRules (Propiedad)

Las reglas de los límites restringir cómo el usuario puede actualizar el tamaño y la posición del rectángulo delimitador.Reemplazo para devolver un BoundsRules.

Espacio de nombres:  Microsoft.VisualStudio.Modeling.Diagrams
Ensamblado:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 (en Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0.dll)

Sintaxis

'Declaración
Public Overridable ReadOnly Property BoundsRules As BoundsRules
public virtual BoundsRules BoundsRules { get; }

Valor de propiedad

Tipo: Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules

Comentarios

Reemplace BoundsRules en la clase shape para restringir cómo el usuario puede mover o cambiar el tamaño de una forma.Por ejemplo, puede evitar que el usuario mueva una forma fuera de o en un área determinada, o podría restringir el ancho y el alto a intervalos concretos o las proporciones.Las reglas se aplican mientras el usuario está arrastrando la forma o sus lados o esquinas, y el usuario ve los movimientos de fantasma formar limitarse según las reglas.

Esta propiedad debe devolver una instancia de una clase que implementa BoundsRules.La implementación de BoundsRules debe tener un M:Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules.GetCompliantBounds(Microsoft.VisualStudio.Modeling.Diagrams.ShapeElement,Microsoft.VisualStudio.Modeling.Diagrams.RectangleD)de método.Este método se llama repetidamente mientras el usuario arrastra la forma.El método se proporciona los límites propuestos, que representan el tamaño y posición que el usuario está intentando establecer.debe devolver los límites permitidos por la regla.

no se aplica ninguna restricción si BoundsRules devuelve nullreferencia null (Nothing en Visual Basic).

[!NOTA]

Si desea responder a un cambio de tamaño o de posición después de haberse producido, por ejemplo para ajustar las posiciones de formas adyacentes, cree un ChangeRule para observar la propiedad de AbsoluteBounds.Vea el ejemplo de AbsoluteBoundsDomainPropertyId.Si desea actualizar valores fuera del almacén, invalide el OnAbsoluteBoundsChanged.

Ejemplos

Este ejemplo restringe las formas de clase MyShape para tener un ancho mínimo especificado, y una ración específica de alto y ancho.

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

Seguridad de .NET Framework

Vea también

Referencia

NodeShape Clase

Microsoft.VisualStudio.Modeling.Diagrams (Espacio de nombres)