Właściwość NodeShape.BoundsRules —
Zasady granice ograniczyć, w jaki sposób użytkownik może zaktualizować rozmiar i położenie prostokąta obwiedni.Override, aby powrócić do BoundsRules.
Przestrzeń nazw: Microsoft.VisualStudio.Modeling.Diagrams
Zestaw: Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 (w Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.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 klasy shape, aby ograniczyć, w jaki sposób można przenieść użytkownika lub zmieniać rozmiar przycinać kształtu.Na przykład można uniemożliwić użytkownikowi przenoszenie kształtu z lub do określonego obszaru lub można ograniczyć szerokość i wysokość do określonych zakresów lub proporcje.Reguły są stosowane, gdy użytkownik jest przeciągnięcie kształtu lub jego boki lub narożniki i użytkownik widzi przemieszczania kształtu ghost zostało objęte ograniczeniami, zgodnie z zasadami sieci.
Ta właściwość powinna zwrócić wystąpienia klasy, która implementuje BoundsRules.Wdrożenie 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ć.Funkcja 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]
Odpowiadanie na zmianę rozmiaru lub położenia po wystąpieniu, na przykład dopasować położenie sąsiadujących kształtów, należy utworzyć ChangeRule do przestrzegania właściwości 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ólnych racją 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
- Pełne zaufanie do bezpośredniego wywołującego. Tego elementu członkowskiego nie można używać w kodzie częściowo zaufanym. Aby uzyskać więcej informacji, zobacz Przy użyciu bibliotek z częściowo zaufanego kodu..