NodeShape.BoundsRules – vlastnost
Pravidla hranice omezit, 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.11.0 (v Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0.dll)
'Deklarace
Public Overridable ReadOnly Property BoundsRules As BoundsRules
public virtual BoundsRules BoundsRules { get; }
Typ: Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules
Přepsat BoundsRules třída shape k omezení přesunu uživatele nebo změnit velikost obrazce.Uživatel může zabránit v přesunutí obrazce z nebo do určité oblasti nebo by mohla omezit šířku a výšku konkrétní rozsahy nebo proporcí.Uživatel je přetažením obrazce nebo jeho strany nebo rohy a uživateli pohyby ghost obrazce na podle pravidla jsou použita pravidla.
Tato vlastnost by mělo vrátit instance třídy, která implementuje BoundsRules.BoundsRules implementace by měla mít metodu M:Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules.GetCompliantBounds(Microsoft.VisualStudio.Modeling.Diagrams.ShapeElement,Microsoft.VisualStudio.Modeling.Diagrams.RectangleD).Tato metoda je volán opakovaně, zatímco uživatel přetáhne obrazce.Metoda je součástí navrhované hranice, které představují velikost a pozici, která uživatel se pokusil nastavit.Rozsah povolených pravidlo má vrátit.
Žádné omezení je použito, pokud BoundsRules vrátí nullodkaz null (Nothing v jazyce Visual Basic).
[!POZNÁMKA]
Pokud chcete reagovat na změnu velikosti nebo pozice po ní došlo, upravit umístění sousedních obrazců, například vytvořte ChangeRule zachovávaly vlastnost AbsoluteBounds.Viz příklad v AbsoluteBoundsDomainPropertyId.Pokud chcete aktualizovat hodnoty mimo obchod, přepsat OnAbsoluteBoundsChanged.
Tento příklad omezuje obrazce Třída MyShape na určené minimální šířku a určitou krmnou výšky na šířku.
// 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;
}
}
- Plná důvěra přímému volajícímu. Částečně zabezpečený kód nemůže tento člen použít. Další informace naleznete v tématu Používání knihoven z částečně důvěryhodného kódu.