NodeShape.BoundsRules プロパティ
外接する四角形のサイズと位置をユーザーが更新する方法を制約するバインド規則。 オーバーライドして BoundsRules を返します。
名前空間: Microsoft.VisualStudio.Modeling.Diagrams
アセンブリ: Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll 内)
構文
'宣言
Public Overridable ReadOnly Property BoundsRules As BoundsRules
public virtual BoundsRules BoundsRules { get; }
プロパティ値
型 : Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules
解説
ユーザーがどのように実行するか、図形のサイズを変更できるの承認するには、クラスの図形の BoundsRules を無視します。 たとえば、ユーザーが特定の領域からまたはに図形を移動したり、特定のスコープや比率に幅と高さを制限できることを防ぐことができます。 規則は、ユーザーが図形か、または角をドラッグしている間、ユーザーがゴーストの移動が、規則に従って制限を適用する形式に表示されます。
このプロパティは、を実装 BoundsRulesそのクラスのインスタンスを返します。 BoundsRules の実装で、メソッドの M:Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules.GetCompliantBounds(Microsoft.VisualStudio.Modeling.Diagrams.ShapeElement,Microsoft.VisualStudio.Modeling.Diagrams.RectangleD)が必要です。 このメソッドは、ユーザーが図形をドラッグしている間、繰り返し呼び出されます。 メソッドはサイズを表し、ユーザーは、設定することを推奨される境界設定されます。 これは、規則で許可される境界を返す必要があります。
制約は BoundsRules が nullnull 参照 (Visual Basic では Nothing)を返す場合は適用されません。
注意
発生した後、サイズや位置の変更に応答する場合は、たとえば、隣接した図形の位置を調整するには、AbsoluteBounds のプロパティを確認するように ChangeRule を作成します。AbsoluteBoundsDomainPropertyId の例を参照してください。ストアの外部の値を更新する場合は、OnAbsoluteBoundsChangedを無視します。
例
この例では、クラスの図形に指定 MyShape 幅が最小幅、および高さの特定の配給量になるように制限します。
// 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 セキュリティ
- 直前の呼び出し元に対する完全な信頼。このメンバーは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。