次の方法で共有


BoundsRules クラス

図形の可能な配置、どのようにサイズが調整できるか制約する規則。

継承階層

System.Object
  Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules
    Microsoft.VisualStudio.Modeling.Diagrams.AvoidCornerRule
    Microsoft.VisualStudio.Modeling.Diagrams.DefaultBoundsRules
    Microsoft.VisualStudio.Modeling.Diagrams.KeepInParentRule
    Microsoft.VisualStudio.Modeling.Diagrams.NoBoundsRules
    Microsoft.VisualStudio.Modeling.Diagrams.PortMovementRule
    Microsoft.VisualStudio.Modeling.Diagrams.SnapToGridRule
    Microsoft.VisualStudio.Modeling.Diagrams.SnapToPerimeterFollowingRotationRule

名前空間:  Microsoft.VisualStudio.Modeling.Diagrams
アセンブリ:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll 内)

構文

'宣言
<SerializableAttribute> _
Public MustInherit Class BoundsRules
[SerializableAttribute]
public abstract class BoundsRules

BoundsRules 型で公開されるメンバーは以下のとおりです。

コンストラクター

  名前 説明
プロテクト メソッド BoundsRules

このページのトップへ

メソッド

  名前 説明
パブリック メソッド Equals 指定のオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッド Finalize オブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッド GetCompliantBounds このバインド規則に準拠するように、提案されたサイズと位置を調整します。ユーザーがマウスを動かしている間に、繰り返し呼び出されます。ゴースト図形は、対応する境界をユーザーに示します。
パブリック メソッド GetHashCode 既定のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッド GetType 現在のインスタンスの Type を取得します。 (Object から継承されます。)
プロテクト メソッド MemberwiseClone 現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッド ToString 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)

このページのトップへ

解説

バインド規則は、図形のサイズと位置の制限を定義するクラスです。 GetCompliantBounds は ユーザーが図形の図形または角または側ドラッグ中に繰り返し呼び出されます。

詳細については、「BoundsRules によってシェイプの位置とサイズが制限される」を参照してください。

次の例は、水平的または垂直的に、固定サイズのバーに四角形の図形を制限します。 ユーザーが角または辺をドラッグすると、アウトラインは高さと幅の 2 種類の許可された構成の間で切り替わります。

位置とサイズの両方を必要に応じて抑制できることに注意してください。

境界の規則はクラスであり、そのインスタンスは、図形に作成する:

using Microsoft.VisualStudio.Modeling.Diagrams; ...
public partial class BarShape
{
  /// <summary>
  /// Rule invoked when the user is resizing a shape.
  /// </summary>
  public override BoundsRules BoundsRules
  { get { return new BarBoundsRule(); } }
}
/// <summary>
/// Rule invoked when the user is changing a shape's outline.
/// Provides real-time mouse rubber-band feedback, so must work fast.
/// </summary>
public class BarBoundsRule: BoundsRules
{ 
  public override RectangleD GetCompliantBounds 
     (ShapeElement shape, RectangleD proposedBounds)
  {
    double thickness = 0.1;
    if (proposedBounds.Height > proposedBounds.Width)
    {
      // There is a minimum width for a shape; the width
      // will actually be set to the lesser of 
      // thickness and that minimum.
      return new RectangleD(proposedBounds.Location, 
            new SizeD(thickness, proposedBounds.Height));
    }
    else
    {
      // There is a minimum height for a shape; the 
      // height will actually be set to the lesser of 
      // thickness and that minimum.
      return new RectangleD(proposedBounds.Location, 
         new SizeD(proposedBounds.Width, thickness));
} } }

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

参照

関連項目

Microsoft.VisualStudio.Modeling.Diagrams 名前空間

その他の技術情報

BoundsRules によってシェイプの位置とサイズが制限される