次の方法で共有


ImageField クラス

イメージ デコレータまたは背景を表示できる図形の一部を表す軽量のオブジェクト。

継承階層

System.Object
  Microsoft.VisualStudio.Modeling.Diagrams.ShapeField
    Microsoft.VisualStudio.Modeling.Diagrams.ImageField

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

構文

'宣言
Public Class ImageField _
    Inherits ShapeField
public class ImageField : ShapeField

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

コンストラクター

  名前 説明
パブリック メソッド ImageField(String) ImageField クラスの新しいインスタンスを初期化します。
パブリック メソッド ImageField(String, Image) ImageField クラスの新しいインスタンスを初期化します。

このページのトップへ

プロパティ

  名前 説明
パブリック プロパティ AnchoringBehavior フィールドの内容の位置とサイズが親 ShapeElement を基準としてどのように自動設定されるかを表します。 (ShapeField から継承されます。)
パブリック プロパティ DefaultAccessibleDescription 既定のユーザー補助の説明を取得または設定します。 (ShapeField から継承されます。)
パブリック プロパティ DefaultAccessibleName ユーザー補助オブジェクトの図形フィールドの既定の名前を取得または設定します。 (ShapeField から継承されます。)
パブリック プロパティ DefaultAccessibleState ユーザー補助オブジェクトの図形フィールドの既定の状態を取得します。 (ShapeField から継承されます。)
パブリック プロパティ DefaultBackgroundBrushId 図形フィールドの背景を描画する既定のブラシの ID を取得または設定します。 (ShapeField から継承されます。)
パブリック プロパティ DefaultFocusable 図形フィールドを取得し、フォーカスを受け取ることができるかどうかを確認するか、フォーカスを受け取る許可を図形フィールドに与えます。 (ShapeField から継承されます。)
パブリック プロパティ DefaultImage この ImageField に関連付けられた既定のイメージを取得または設定します。既定のイメージは GetDisplayImage メソッドのオーバーライドによってカスタマイズできます。
パブリック プロパティ DefaultInactiveSelectedBackgroundBrushId 図形フィールドの既定の背景ブラシの ID を取得または設定します。 (ShapeField から継承されます。)
パブリック プロパティ DefaultPenId 図形フィールドに使用する既定のペンの ID を取得または設定します。 (ShapeField から継承されます。)
パブリック プロパティ DefaultReflectParentFocusedState 子図形フィールドを取得し、親図形がフォーカスを受け取ったときにフォーカスを受け取る必要があるかどうかを確認するか、または親図形のフォーカス状態を反映する機能を設定します。 (ShapeField から継承されます。)
パブリック プロパティ DefaultReflectParentSelectedState 子図形フィールドを取得し、親図形が選択されたときに子図形フィールドを選択する必要があるかどうかを確認するか、または親図形の選択状態を反映する機能を設定します。 (ShapeField から継承されます。)
パブリック プロパティ DefaultSelectable 図形フィールドを取得し、既定で選択可能かどうかを確認するか、図形フィールドの既定の選択状態を設定します。 (ShapeField から継承されます。)
パブリック プロパティ DefaultSelectedBackgroundBrushId 図形フィールドの既定の背景ブラシの ID を取得または設定します。 (ShapeField から継承されます。)
パブリック プロパティ DefaultUnscaled このフィールドの境界に対してイメージを縮小または拡大せずに描画するか、または境界に合わせてイメージを縮小または拡大するかどうかを取得または設定します。
パブリック プロパティ DefaultVisibility 図形フィールドを取得し、既定で表示されるかどうかを確認するか、図形フィールドの既定の表示状態を設定します。 (ShapeField から継承されます。)
パブリック プロパティ Name 図形フィールドの名前を取得します。 (ShapeField から継承されます。)

このページのトップへ

メソッド

  名前 説明
パブリック メソッド AccessibleDoDefaultAction アクセス可能なオブジェクトに対して既定のアクションを実行します。 (ShapeField から継承されます。)
パブリック メソッド AllowInPlaceEditorAutoSize 図形フィールドでのインプレース エディターの自動サイズ変更を有効にします。 (ShapeField から継承されます。)
パブリック メソッド AssociateValueWith(Store, AssociatedPropertyInfo) 図形要素に割り当てるドメイン プロパティと図形フィールドを関連付けます。 (ShapeField から継承されます。)
パブリック メソッド AssociateValueWith(Store, Guid) 図形要素に割り当てるドメイン プロパティと図形フィールドを関連付けます。 (ShapeField から継承されます。)
パブリック メソッド AssociateValueWith(Store, Guid, AssociatedPropertyInfo) 図形要素に割り当てるドメイン プロパティと図形フィールドを関連付けます。 (ShapeField から継承されます。)
パブリック メソッド AssociateVisibilityWith(Store, AssociatedPropertyInfo) 図形要素に割り当てるドメイン プロパティと図形フィールドの表示を関連付けます。 (ShapeField から継承されます。)
パブリック メソッド AssociateVisibilityWith(Store, Guid) 図形要素に割り当てるドメイン プロパティと図形フィールドの表示を関連付けます。 (ShapeField から継承されます。)
パブリック メソッド AssociateVisibilityWith(Store, Guid, AssociatedPropertyInfo) 図形要素に割り当てるドメイン プロパティと図形フィールドの表示を関連付けます。 (ShapeField から継承されます。)
パブリック メソッド CanEditValue 図形フィールドを取得し、編集可能かどうかを確認します。 (ShapeField から継承されます。)
パブリック メソッド CommitPendingEdit 保留中の編集をコミットします。 (ShapeField から継承されます。)
パブリック メソッド DoHitTest ダイアグラムで指定されたポイントのヒット テストを実行してポイントが図形フィールドの境界内にあるかどうかを判断します。 (ShapeField から継承されます。)
パブリック メソッド DoKeyboardNavigation キーボードを使用して図形フィールド内で移動します。 (ShapeField から継承されます。)
パブリック メソッド DoPaint ShapeField の内容を描画します。 (ShapeField.DoPaint(DiagramPaintEventArgs, ShapeElement) をオーバーライドします。)
パブリック メソッド EditValue(ShapeElement, DiagramClientView) 図形フィールドのインプレース エディターを開きます。 (ShapeField から継承されます。)
パブリック メソッド EditValue(ShapeElement, DiagramClientView, PointD) 図形フィールドのインプレース エディターを開きます。 (ShapeField から継承されます。)
パブリック メソッド Equals 指定のオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッド Finalize オブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッド FindFirstChild 親図形フィールドの最初の子図形フィールドを検索します。 (ShapeField から継承されます。)
パブリック メソッド FindLastChild 親図形フィールドの最後の子図形フィールドを検索します。 (ShapeField から継承されます。)
パブリック メソッド FindNextChild 親図形フィールドの次の子図形フィールドを検索します。 (ShapeField から継承されます。)
パブリック メソッド FindNextInChildSubFields ナビゲーション シーケンスの次の子図形フィールドを検索します。 (ShapeField から継承されます。)
パブリック メソッド FindPreviousChild 親図形フィールドの前の子図形フィールドを検索します。 (ShapeField から継承されます。)
パブリック メソッド FindPreviousInChildSubFields ナビゲーション シーケンスの前の子図形フィールドを検索します。 (ShapeField から継承されます。)
パブリック メソッド Focused 図形フィールドを取得し、フォーカスを持っているかどうかを確認します。 (ShapeField から継承されます。)
パブリック メソッド GetAccessibilityObject 図形フィールドに割り当てられているユーザー補助オブジェクトを取得します。 (ShapeField から継承されます。)
パブリック メソッド GetAccessibleChild 子図形フィールドの Accessibility オブジェクトを取得します。 (ShapeField から継承されます。)
パブリック メソッド GetAccessibleChildCount 親図形フィールドとその子図形フィールドに割り当てられているユーザー補助オブジェクトの数を取得します。 (ShapeField から継承されます。)
パブリック メソッド GetAccessibleDefaultActionDescription ユーザー補助オブジェクトの図形フィールドの既定の目的を取得します。 (ShapeField から継承されます。)
パブリック メソッド GetAccessibleDescription イメージ フィールドについて既定のアクセス可能な説明を返します。 (ShapeField.GetAccessibleDescription(ShapeElement) をオーバーライドします。)
パブリック メソッド GetAccessibleHelp ユーザー補助オブジェクトの図形フィールドのヘルプを取得します。 (ShapeField から継承されます。)
パブリック メソッド GetAccessibleHelpTopicFileName アクセスできるオブジェクトのヘルプ内のトピックを取得します。 (ShapeField から継承されます。)
パブリック メソッド GetAccessibleHelpTopicId ユーザー補助オブジェクトのヘルプ トピックに割り当てられている ID を取得します。 (ShapeField から継承されます。)
パブリック メソッド GetAccessibleName イメージ フィールドの既定のアクセス可能な名前を返します。 (ShapeField.GetAccessibleName(ShapeElement) をオーバーライドします。)
パブリック メソッド GetAccessibleRole この ShapeField のアクセス可能なロールを取得します。 (ShapeField.GetAccessibleRole(ShapeElement) をオーバーライドします。)
パブリック メソッド GetAccessibleState ユーザー補助オブジェクトの図形フィールドの状態を取得します。 (ShapeField から継承されます。)
パブリック メソッド GetAccessibleValue ユーザー補助オブジェクトの図形フィールドの値を取得します。 (ShapeField から継承されます。)
パブリック メソッド GetActiveInPlaceEditor アクティブなインプレース エディターを取得します。 (ShapeField から継承されます。)
パブリック メソッド GetBackgroundBrush この図形フィールドが割り当てられている図形要素の背景を描画するブラシを取得します。 (ShapeField から継承されます。)
パブリック メソッド GetBackgroundBrushId この図形フィールドが割り当てられている図形要素の背景を描画するブラシの ID を取得します。 (ShapeField から継承されます。)
パブリック メソッド GetBounds 図形フィールドの境界を取得します。 (ShapeField から継承されます。)
パブリック メソッド GetCursor マウスで図形フィールドをポイントしているときに表示されるポインターを取得します。 (ShapeField から継承されます。)
パブリック メソッド GetDisplayImage このフィールドによって表示されるイメージを取得します。
パブリック メソッド GetFocusable 図形フィールドを取得し、フォーカスを受け取ることができるかどうかを確認します。 (ShapeField から継承されます。)
パブリック メソッド GetHashCode 既定のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッド GetInPlaceEditorBounds インプレース エディターの境界を取得します。 (ShapeField から継承されます。)
パブリック メソッド GetMaximumInPlaceEditorSize インプレース エディターの最大境界を取得します。 (ShapeField から継承されます。)
パブリック メソッド GetMinimumInPlaceEditorSize インプレース エディターの最小境界を取得します。 (ShapeField から継承されます。)
パブリック メソッド GetMinimumSize ImageField の最小サイズを返します。 (ShapeField.GetMinimumSize(ShapeElement) をオーバーライドします。)
パブリック メソッド GetPen 図形フィールドが割り当てられている図形要素を描画するペンを取得します。 (ShapeField から継承されます。)
パブリック メソッド GetPenId 図形フィールドが割り当てられている図形要素を描画するペンの ID を取得します。 (ShapeField から継承されます。)
パブリック メソッド GetPotentialMouseAction ユーザーが次にダイアグラムの特定の点をクリックしたときにアクティブ化されるマウス操作を取得します。 (ShapeField から継承されます。)
パブリック メソッド GetSelectable 図形フィールドを取得し、選択可能かどうかを確認します。 (ShapeField から継承されます。)
パブリック メソッド GetType 現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド GetUnscaled イメージをスケーリングせずに描画するかどうかを取得します。
パブリック メソッド GetValue 図形フィールドの値を取得します。 (ShapeField から継承されます。)
パブリック メソッド GetValueDomainPropertyInfo 図形フィールドの値に割り当てられるドメイン プロパティを取得します。 (ShapeField から継承されます。)
パブリック メソッド GetVisible 図形フィールドを取得し、表示されるかどうかを確認します。 (ShapeField から継承されます。)
パブリック メソッド HasFocusedAppearance 図形フィールドを取得し、フォーカスを持っている状態で表示するかどうかを確認します。 (ShapeField から継承されます。)
パブリック メソッド HasPendingEdit 図形フィールドを取得し、インプレース エディターがアクティブであり、変更が保留中であるかどうかを確認します。 (ShapeField から継承されます。)
パブリック メソッド HasSelectedAppearance 図形フィールドを取得し、選択された状態で表示されるかどうかを確認します。 (ShapeField から継承されます。)
パブリック メソッド IsNavigationKey(Char) ユーザーが押したキーを取得し、図形フィールド間で移動するために使用できるかどうかを確認します。 (ShapeField から継承されます。)
パブリック メソッド IsNavigationKey(Keys) ユーザーが押した複数のキーを取得し、図形フィールド間で移動するために使用できるかどうかを確認します。 (ShapeField から継承されます。)
プロテクト メソッド MemberwiseClone 現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッド NavigateAscend 選択した図形のナビゲーション シーケンス内の前の図形フィールドにフォーカスを移動します。 (ShapeField から継承されます。)
パブリック メソッド NavigateDescend 選択した図形のナビゲーション シーケンス内の次の図形フィールドにフォーカスを移動します。 (ShapeField から継承されます。)
パブリック メソッド NavigateToFirst 選択した図形のナビゲーション シーケンス内の最初の図形フィールドにフォーカスを移動します。 (ShapeField から継承されます。)
パブリック メソッド NavigateToLast 選択した図形のナビゲーション シーケンス内の最後の図形フィールドにフォーカスを移動します。 (ShapeField から継承されます。)
パブリック メソッド NavigateToNext 選択した図形のナビゲーション シーケンス内の次の図形フィールドにフォーカスを移動します。 (ShapeField から継承されます。)
パブリック メソッド NavigateToPrevious 選択した図形のナビゲーション シーケンス内の前の図形フィールドにフォーカスを移動します。 (ShapeField から継承されます。)
プロテクト メソッド OnBeginEdit 埋め込み先編集が開始された場合にリスナーに警告します。 (ShapeField から継承されます。)
パブリック メソッド OnClick ユーザーが図形フィールドをクリックした場合にリスナーに警告します。 (ShapeField から継承されます。)
パブリック メソッド OnDoubleClick ユーザーが図形フィールドをダブルクリックした場合にリスナーに警告します。 (ShapeField から継承されます。)
プロテクト メソッド OnEndEdit 埋め込み先編集が完了した場合にリスナーに警告します。 (ShapeField から継承されます。)
パブリック メソッド OnKeyDown 図形フィールドをポイントしている場合にユーザーがキーを押したままの状態にしていることをリスナーに警告します。 (ShapeField から継承されます。)
パブリック メソッド OnKeyPress 図形フィールドをポイントしている場合にユーザーがキーを押したことをリスナーに警告します。 (ShapeField から継承されます。)
パブリック メソッド OnKeyUp 図形フィールドをポイントしている場合にユーザーがキーを離したことをリスナーに警告します。 (ShapeField から継承されます。)
パブリック メソッド OnMouseDown ユーザーが図形フィールド上でマウス ボタンを押したままの状態にしている場合にリスナーに警告します。 (ShapeField から継承されます。)
パブリック メソッド OnMouseMove マウスが図形フィールド上に移動された場合にリスナーに警告します。 (ShapeField から継承されます。)
パブリック メソッド OnMouseUp ユーザーが図形フィールド上でマウス ボタンを離した場合にリスナーに警告します。 (ShapeField から継承されます。)
パブリック メソッド OnMouseWheel マウスが図形フィールド上で回転された場合にリスナーに警告します。 (ShapeField から継承されます。)
パブリック メソッド Selected 図形フィールドを取得し、選択されているかどうかを確認します。 (ShapeField から継承されます。)
パブリック メソッド SetSelectionRange 選択を子の図形フィールドの範囲に設定します。 (ShapeField から継承されます。)
パブリック メソッド SetValue 指定された値を図形フィールドに割り当てます。 (ShapeField から継承されます。)
パブリック メソッド SetVisible 図形フィールドの可視性を設定します。 (ShapeField から継承されます。)
パブリック メソッド ToString 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)

このページのトップへ

解説

図形のイメージ デコレータを定義し、ImageField で定義するとイメージの図形、図形が表示される領域管理されます。 ImageFields などの ShapeFields の初期化の例については、DSL のソリューションの Dsl\GeneratedCode\Shapes.cs を確認します。

ImageField は図形の内側の領域を管理するデコレータに割り当てられた領域などのオブジェクトです。 ImageField の 1 種類のインスタンスは、Shape クラスの多くの図形の間で共有されます。 ImageField のインスタンスを各図形の別のイメージを保存する: 代わりに、GetDisplayImage(ShapeElement) のメソッドは、パラメーターとして図形を受け取り、図形、およびモデル要素の現在の状態のイメージの依存を検索できます。

変数イメージなどの特殊な処理が必要な場合は、ImageField から派生した独自のクラスを作成できます。

ImageField のサブクラスを作成する。

  1. DSL 定義の親 Shape クラスの [double 型の派生が生成されます。] のプロパティを設定します。

  2. Shape クラスの InitializeShapeFields のメソッドをオーバーライドします。

    • 新しいコード ファイルを DSL のプロジェクトで作成し、Shape クラスの部分クラス定義を作成します。 メソッド定義を調べて、オーバーライドします。
  3. DSL\GeneratedCode\Shapes.cs の InitializeShapeFields のコードを確認します。

    override メソッドで、基本メソッドを呼び出して独自のイメージ フィールド クラスのインスタンスを作成します。 shapeFields の一覧の通常のイメージ フィールドを置き換えるために使用します。

この例では、図形のモデル要素の状態のアイコンの変更を依存します。

注意

この例では、動的なイメージ デコレータを行う方法を示します。ただし、モデル変数の状態に応じて一つのイメージに切り替えることができる場合は、一部のイメージ デコレータを作成できるので、図形の同じ位置にアクセスして、そのモデル変数の特定の値に依存する可視性のフィルターを設定します。このフィルターを設定するには、DSL 定義のマップを選択し、DSL の詳細ウィンドウが開き、デコレータ タブをクリックします。

このコード例を実行するには、最小の言語テンプレートを使用して新しい DSL のソリューションを作成します。 ExampleElement のドメイン クラスに Boolean ドメインの AlternateState プロパティを追加します。 アイコンのデコレータを ExampleShape クラスに追加し、ビットマップ ファイルにイメージを設定します。 [すべてのテンプレートの変換] をクリックします。 DSL のプロジェクトの新しいコード ファイルを追加し、次のコードを挿入します。

コードをテストするには、F5 キーを押して、デバッグのソリューションで、サンプル図を開きます。 アイコンの既定の状態が表示されます。 プロパティ ウィンドウの形状を変更します [AlternateState] のプロパティの値を選択します。 アイコンは、その図形に 90 度回転して、ようになります。

using Microsoft.VisualStudio.Modeling;
using Microsoft.VisualStudio.Modeling.Diagrams;
...
partial class ExampleShape
{
    /// <summary>
    /// Compose a list of the fields in this shape.
    /// Called once for each shape class.
    /// </summary>
    /// <param name="shapeFields"></param>
    protected override void InitializeShapeFields(IList<ShapeField> shapeFields)
    {
      // Fields set up according to DSL Definition:
      base.InitializeShapeFields(shapeFields);

      // Replace the image field:
      ShapeField oldField = ShapeElement.FindShapeField(shapeFields, "IconDecorator");
      shapeFields.Remove(oldField);
      // Must keep the same name:
      MyImageField newField = new MyImageField(oldField.Name);
      shapeFields.Add(newField);
      newField.DefaultImage = (oldField as ImageField).DefaultImage.Clone() as System.Drawing.Image;
    }
  }


  public class MyImageField : ImageField
  {
    public MyImageField(string tag) : base(tag) { }

    /// <summary>
    /// Get the image for this field in the given shape.
    /// </summary>
    public override System.Drawing.Image GetDisplayImage(ShapeElement parentShape)
    {
      ExampleElement element = parentShape.ModelElement as ExampleElement;
      if (element.AlternateState == true)
        return AlternateImage;
      else
        return base.GetDisplayImage(parentShape);
    }

    private System.Drawing.Image alternateImage;
    public System.Drawing.Image AlternateImage
    {
      get
      {
        if (alternateImage == null)
        {
          // Alternate image is a copy of the default, rotated by 90 degrees:
          alternateImage = this.DefaultImage.Clone() as System.Drawing.Image;
          alternateImage.RotateFlip(System.Drawing.RotateFlipType.Rotate90FlipNone);
        }
        return alternateImage;
      }
    }
  }
}

スレッド セーフ

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

参照

関連項目

Microsoft.VisualStudio.Modeling.Diagrams 名前空間

TextField

ShapeField

InitializeShapeFields