Proprietà NodeShape.BoundsRules
Le regole limiti vincolano come utente possibile aggiornare la dimensione e la posizione del rettangolo di delimitazione.override per restituire un BoundsRules.
Spazio dei nomi: Microsoft.VisualStudio.Modeling.Diagrams
Assembly: Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 (in Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0.dll)
Sintassi
'Dichiarazione
Public Overridable ReadOnly Property BoundsRules As BoundsRules
public virtual BoundsRules BoundsRules { get; }
Valore proprietà
Tipo: Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules
Note
Eseguire l'override di BoundsRules nella classe della forma per vincolare come è possibile spostare o ridimensionare una forma.Ad esempio, è possibile impedire all'utente di spostare una forma da o in una particolare area, oppure è possibile limitare la larghezza e l'altezza a intervalli specifici o alle proporzioni.Le regole vengono applicate quando l'utente sta trascinando la forma o i lati o angoli e riceverà lo spostamento di fantasma formare essere limitato in base alle regole.
Questa proprietà deve restituire un'istanza di una classe che implementa BoundsRules.L'implementazione di BoundsRules necessario disporre di un metodo M:Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules.GetCompliantBounds(Microsoft.VisualStudio.Modeling.Diagrams.ShapeElement,Microsoft.VisualStudio.Modeling.Diagrams.RectangleD).Questo metodo viene chiamato ripetutamente mentre l'utente trascina la forma.Il metodo viene fornito con i limiti proposti, che rappresentano la dimensione e posizione oltre che l'utente tenta di impostare.Deve restituire i limiti consentiti dalla regola.
Alcun vincolo è valido se BoundsRules restituisce nullriferimento null (Nothing in Visual Basic).
[!NOTA]
Se si desidera rispondere a una modifica di dimensione o la posizione dopo che si è verificata, ad esempio per modificare le posizioni delle forme adiacenti, creare un ChangeRule per osservare la proprietà di AbsoluteBounds.Vedere l'esempio in AbsoluteBoundsDomainPropertyId.Se si desidera aggiornare i valori all'esterno dell'archivio, eseguire l'override OnAbsoluteBoundsChanged.
Esempi
In questo esempio vincolano le forme di classe MyShape per avere una larghezza minima specificata e una razione specifica di altezza per larghezza.
// 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;
}
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.