Compartilhar via


Propriedade NodeShape.BoundsRules

Regras de limites restringem como o usuário pode atualizar o tamanho e posição do retângulo delimitador.Substituição para retornar um BoundsRules.

Namespace:  Microsoft.VisualStudio.Modeling.Diagrams
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 (em Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0.dll)

Sintaxe

'Declaração
Public Overridable ReadOnly Property BoundsRules As BoundsRules
public virtual BoundsRules BoundsRules { get; }

Valor de propriedade

Tipo: Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules

Comentários

Substitua BoundsRules na sua classe shape para restringir a como o usuário pode mover ou redimensionar uma forma.Por exemplo, você pode impedir que o usuário mover uma forma de ou em uma determinada área, ou você pode limitar a largura e altura para intervalos específicos ou proporções.As regras são aplicadas enquanto o usuário está arrastando a forma ou de suas laterais ou nos cantos e o usuário vê os movimentos da forma ghost sendo restrito de acordo com suas regras.

Esta propriedade deve retornar uma instância de uma classe que implementa BoundsRules.A implementação de BoundsRules deve ter um método M:Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules.GetCompliantBounds(Microsoft.VisualStudio.Modeling.Diagrams.ShapeElement,Microsoft.VisualStudio.Modeling.Diagrams.RectangleD).Este método é chamado repetidamente enquanto o usuário arrasta a forma.O método é fornecido com os limites de proposta, que representam o tamanho e posição em que o usuário está tentando definir.Ele deve retornar os limites permitidos por sua regra.

Nenhuma restrição será aplicada se BoundsRules retorna nulluma referência nula (Nothing no Visual Basic).

ObservaçãoObservação

Se você quiser responder a uma alteração de tamanho ou posição após sua ocorrência, por exemplo ajustar as posições das formas adjacentes, crie um ChangeRule para observar a propriedade AbsoluteBounds.Veja o exemplo na AbsoluteBoundsDomainPropertyId.Se você quiser atualizar valores fora do armazenamento, substituir OnAbsoluteBoundsChanged.

Exemplos

Este exemplo restringe as formas da classe MyShape para ter uma largura mínima especificada e uma taxa específica altura e largura.

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

Segurança do .NET Framework

Consulte também

Referência

NodeShape Classe

Namespace Microsoft.VisualStudio.Modeling.Diagrams