NodeShape.BoundsRules-Eigenschaft
Begrenzungsregeln beschränken, wie der Benutzer die Größe und die Position des umschließenden Rechtecks aktualisieren kann. Überschreiben, um ein BoundsRules zurückzugeben.
Namespace: Microsoft.VisualStudio.Modeling.Diagrams
Assembly: Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll)
Syntax
'Declaration
Public Overridable ReadOnly Property BoundsRules As BoundsRules
public virtual BoundsRules BoundsRules { get; }
Eigenschaftswert
Typ: Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules
Hinweise
Überschreiben Sie BoundsRules in der Formklasse, um einschränken, wie der Benutzer eine Form bewegen oder Größe ändern kann. Beispielsweise können Sie den Benutzer am Verschieben einer Form aus oder in einem bestimmten Bereich zu verhindern, oder Sie können die Breite und Höhe zu bestimmten Bereichen oder die proportional und beschränken. Die Regeln werden angewendet, während der Benutzer die Form oder die Seiten oder Ecken wird und der Benutzer die Bewegungen der inaktiven Form sieht, die gemäß den Regeln beschränkt ist.
Diese Eigenschaft sollte eine Instanz einer Klasse zurückgeben, die BoundsRules implementiert. die BoundsRules-Implementierung sollte Methoden ein M:Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules.GetCompliantBounds(Microsoft.VisualStudio.Modeling.Diagrams.ShapeElement,Microsoft.VisualStudio.Modeling.Diagrams.RectangleD). Diese Methode wird wiederholt aufgerufen, während der Benutzer die Form ziehen. Die Methode wird mit den vorgeschlagenen Grenzen bereitgestellt, die die Größe darstellen und positionieren, dass der Benutzer versucht festzulegen. Sie sollte den Grenzen zurückgeben, die von der Regel zulässig sind.
keine Einschränkung wird angewendet, wenn BoundsRulesnullein Nullverweis (Nothing in Visual Basic) zurückgibt.
Hinweis
Wenn Sie auf eine Änderung der Größe und der Position reagieren möchten, nachdem sie aufgetreten ist, beispielsweise, um die Positionen von benachbarten Formen anzupassen, erstellen Sie ein ChangeRule, um auf die AbsoluteBounds-Eigenschaft zu beobachten.Siehe das Beispiel in AbsoluteBoundsDomainPropertyId.Wenn Sie Werte außerhalb des Speichers aktualisieren möchten, überschreiben Sie OnAbsoluteBoundsChanged.
Beispiele
Dies schränkt beispielsweise die die Formen der Klasse MyShape ein, um eine angegebene Mindestbreite und eine spezielle Zuteilung der Höhe zur Breite verfügen.
// 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;
}
}
.NET Framework-Sicherheit
- Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter Verwenden von Bibliotheken aus teilweise vertrauenswürdigem Code.