Udostępnij za pośrednictwem


Właściwość NodeShape.BoundsRules —

Zasady granice ograniczyć, jak użytkownik może zaktualizować rozmiar i położenie prostokąta obwiedni.Zastępowanie zwraca BoundsRules.

Przestrzeń nazw:  Microsoft.VisualStudio.Modeling.Diagrams
Zestaw:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (w Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll)

Składnia

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

Wartość właściwości

Typ: Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules

Uwagi

Zastąpić BoundsRules w swojej klasy shape, aby ograniczyć, w jaki sposób przenieść użytkownika lub zmiany rozmiaru kształtu.Na przykład użytkownik może uniemożliwić przenoszenie kształtu z lub w określonym obszarze lub może ograniczyć szerokość i wysokość do określonych zakresów lub proporcje.Reguły są stosowane, gdy użytkownik jest przeciąganie kształtu lub jego boki lub narożniki i użytkownik widzi ruchy kształtu ghost jest ograniczona zgodnie z regułami.

Ta właściwość powinna zwrócić wystąpienia klasy, która implementuje BoundsRules.Implementacji BoundsRules powinien mieć formę M:Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules.GetCompliantBounds(Microsoft.VisualStudio.Modeling.Diagrams.ShapeElement,Microsoft.VisualStudio.Modeling.Diagrams.RectangleD).Ta metoda jest wywoływany cyklicznie, podczas gdy użytkownik przeciągnie kształt.Metoda jest dostarczany z proponowanych granice, które reprezentują rozmiary i położenie, który użytkownik próbuje ustawić.Powinna zwrócić granice dopuszczalne przez regułę użytkownika.

Ograniczenie nie jest stosowane, jeśli BoundsRules zwraca nullodwołanie o wartości null (Nothing w języku Visual Basic).

[!UWAGA]

Aby odpowiedzieć na zmiany rozmiaru lub położenia po zdarzeniu, na przykład dopasować położenie sąsiadujących kształtów, tworzenie ChangeRule obserwować właściwość AbsoluteBounds.Zobacz przykład w AbsoluteBoundsDomainPropertyId.Jeśli chcesz zaktualizować wartości spoza magazynu zastępują OnAbsoluteBoundsChanged.

Przykłady

W tym przykładzie ogranicza kształtów klasa MyShape do określonej szerokości minimalnej i szczególne racje wysokości i szerokości.

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

Zabezpieczenia programu .NET Framework

Zobacz też

Informacje

NodeShape Klasa

Przestrzeń nazw Microsoft.VisualStudio.Modeling.Diagrams