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 のサブクラスを作成する。
DSL 定義の親 Shape クラスの [double 型の派生が生成されます。] のプロパティを設定します。
Shape クラスの InitializeShapeFields のメソッドをオーバーライドします。
- 新しいコード ファイルを DSL のプロジェクトで作成し、Shape クラスの部分クラス定義を作成します。 メソッド定義を調べて、オーバーライドします。
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) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。