Sdílet prostřednictvím


NodeShape.BoundsRules – vlastnost

Hranice pravidla omezení, jak může uživatel aktualizovat velikost a umístění ohraničovacího rámečku.Přepsat vrátit BoundsRules.

Obor názvů:  Microsoft.VisualStudio.Modeling.Diagrams
Sestavení:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (v Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll)

Syntaxe

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

Hodnota vlastnosti

Typ: Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules

Poznámky

Přepište BoundsRules třída shape, chcete-li omezit, jak lze přesunout uživatele nebo změnit velikost obrazce.Například uživatel může zabránit, přesunutí obrazce z nebo do určité oblasti nebo by mohla omezit šířku a výšku konkrétní rozsahy nebo proporcí.V době, kdy je uživatel přetažením obrazce nebo jeho strany nebo rohy a uživateli se zobrazí pohyb tvaru ghost je omezen podle pravidel jsou použita pravidla.

Tato vlastnost by mělo vrátit instance třídy, která implementuje BoundsRules.BoundsRules implementace by měla obsahovat metodu M:Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules.GetCompliantBounds(Microsoft.VisualStudio.Modeling.Diagrams.ShapeElement,Microsoft.VisualStudio.Modeling.Diagrams.RectangleD).Tato metoda je volána opakovaně, když uživatel přetáhne tvar.Metoda je součástí navrhované hranice, které představují velikost a umístění, které uživatel pokouší nastavit.Rozsah povolených pravidla, měla by vrátit.

Bez omezení-li BoundsRules vrátí nullodkaz null (Nothing v jazyce Visual Basic).

[!POZNÁMKA]

Pokud chcete reagovat na změnu velikosti nebo pozice poté, co ji došlo, chcete-li například upravit umístění sousedních obrazců vytvořte ChangeRule sledovat vlastnost AbsoluteBounds.Viz příklad v AbsoluteBoundsDomainPropertyId.Pokud chcete aktualizovat hodnoty mimo obchod, přepsat OnAbsoluteBoundsChanged.

Příklady

V tomto příkladu omezuje obrazce Třída MyShape mít určený minimální šířku a určité dávce zvětšen.

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

Zabezpečení rozhraní .NET Framework

Viz také

Referenční dokumentace

NodeShape Třída

Microsoft.VisualStudio.Modeling.Diagrams – obor názvů