TextField クラス
テキスト ラベルまたは領域を表示できる図形の一部を表す軽量のオブジェクト。
継承階層
System.Object
Microsoft.VisualStudio.Modeling.Diagrams.ShapeField
Microsoft.VisualStudio.Modeling.Diagrams.TextField
Microsoft.VisualStudio.Modeling.Diagrams.LabelTextField
名前空間: Microsoft.VisualStudio.Modeling.Diagrams
アセンブリ: Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll 内)
構文
'宣言
Public Class TextField _
Inherits ShapeField
public class TextField : ShapeField
TextField 型で公開されるメンバーは以下のとおりです。
コンストラクター
名前 | 説明 | |
---|---|---|
TextField | TextField クラスの新しいインスタンスを初期化します。 |
このページのトップへ
プロパティ
名前 | 説明 | |
---|---|---|
AnchoringBehavior | フィールドの内容の位置とサイズが親 ShapeElement を基準としてどのように自動設定されるかを表します。 (ShapeField から継承されます。) | |
DefaultAccessibleDescription | 既定のユーザー補助の説明を取得または設定します。 (ShapeField から継承されます。) | |
DefaultAccessibleName | ユーザー補助オブジェクトの図形フィールドの既定の名前を取得または設定します。 (ShapeField から継承されます。) | |
DefaultAccessibleState | ユーザー補助オブジェクトの図形フィールドの既定の状態を取得します。 (ShapeField から継承されます。) | |
DefaultAutoSize | true の場合、テキスト フィールドの報告された最小のサイズは、表示テキストの長さに応じて大きくなります。サイズの自動設定が可能なテキスト フィールドは、AnchoringBehavior で指定された最小サイズを引き続き考慮します。 | |
DefaultBackgroundBrushId | 図形フィールドの背景を描画する既定のブラシの ID を取得または設定します。 (ShapeField から継承されます。) | |
DefaultCommitOnEscape | エスケープ キーが編集をコミットするかどうかを示す値を取得または設定します。true の場合、埋め込み先編集で Enter キーは CRLF として使用されます。 | |
DefaultFocusable | 図形フィールドを取得し、フォーカスを受け取ることができるかどうかを確認するか、フォーカスを受け取る許可を図形フィールドに与えます。 (ShapeField から継承されます。) | |
DefaultFontId | 既定のフォント ID を取得または設定します。 | |
DefaultInactiveSelectedBackgroundBrushId | 図形フィールドの既定の背景ブラシの ID を取得または設定します。 (ShapeField から継承されます。) | |
DefaultInactiveSelectedTextBrushId | アクティブでない選択されたテキストの既定のブラシ ID を取得または設定します。 | |
DefaultIsHorizontal | テキストの既定の水平状態を取得または設定します。 | |
DefaultMultipleLine | true の場合は、使用できる幅に収まるように、テキストが自動的に複数の行に折り返されます。 | |
DefaultPenId | 図形フィールドに使用する既定のペンの ID を取得または設定します。 (ShapeField から継承されます。) | |
DefaultReflectParentFocusedState | 子図形フィールドを取得し、親図形がフォーカスを受け取ったときにフォーカスを受け取る必要があるかどうかを確認するか、または親図形のフォーカス状態を反映する機能を設定します。 (ShapeField から継承されます。) | |
DefaultReflectParentSelectedState | 子図形フィールドを取得し、親図形が選択されたときに子図形フィールドを選択する必要があるかどうかを確認するか、または親図形の選択状態を反映する機能を設定します。 (ShapeField から継承されます。) | |
DefaultSelectable | 図形フィールドを取得し、既定で選択可能かどうかを確認するか、図形フィールドの既定の選択状態を設定します。 (ShapeField から継承されます。) | |
DefaultSelectedBackgroundBrushId | 図形フィールドの既定の背景ブラシの ID を取得または設定します。 (ShapeField から継承されます。) | |
DefaultSelectedTextBrushId | 選択されたテキストの既定のブラシ ID を取得または設定します。 | |
DefaultStringFormat | テキスト描画の既定の文字列形式を取得または設定します。 | |
DefaultText | 描画する既定のテキストを取得または設定します。 | |
DefaultTextBrushId | テキストの既定のブラシ ID を取得または設定します。 | |
DefaultVisibility | 図形フィールドを取得し、既定で表示されるかどうかを確認するか、図形フィールドの既定の表示状態を設定します。 (ShapeField から継承されます。) | |
DisplayMember | 表示テキストが関連付けられているプロパティ名を取得または設定します。 | |
DrawBorder | (使用しないでください。変更されます) | |
FillBackground | (使用しないでください。変更されます) | |
Name | 図形フィールドの名前を取得します。 (ShapeField から継承されます。) |
このページのトップへ
メソッド
名前 | 説明 | |
---|---|---|
AccessibleDoDefaultAction | アクセス可能なオブジェクトに対して既定のアクションを実行します。 (ShapeField から継承されます。) | |
AllowInPlaceEditorAutoSize | 既定では、自動サイズ調整がフィールドでサポートされている場合、インプレース エディターでサイズを自動的に調整できます。 (ShapeField.AllowInPlaceEditorAutoSize(ShapeElement) をオーバーライドします。) | |
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.CanEditValue(ShapeElement, DiagramClientView) をオーバーライドします。) | |
CommitPendingEdit | 保留中の編集をコミットします。 (ShapeField.CommitPendingEdit(ShapeElement, DiagramClientView) をオーバーライドします。) | |
DoHitTest | ダイアグラムで指定されたポイントのヒット テストを実行してポイントが図形フィールドの境界内にあるかどうかを判断します。 (ShapeField から継承されます。) | |
DoKeyboardNavigation | キーボードを使用して図形フィールド内で移動します。 (ShapeField から継承されます。) | |
DoPaint | テキスト フィールドを描画します。 (ShapeField.DoPaint(DiagramPaintEventArgs, ShapeElement) をオーバーライドします。) | |
EditValue(ShapeElement, DiagramClientView) | インプレース エディターを呼び出します。 (ShapeField.EditValue(ShapeElement, DiagramClientView) をオーバーライドします。) | |
EditValue(ShapeElement, DiagramClientView, PointD) | インプレース エディターを呼び出し、指定されたマウスの位置を使用してキャレットを設定します。 (ShapeField.EditValue(ShapeElement, DiagramClientView, PointD) をオーバーライドします。) | |
EditValue(ShapeElement, DiagramClientView, String) | インプレース エディターを呼び出し、テキストを指定したテキストに置き換えます。 | |
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 | この TextField のアクセス可能な状態を取得します。既定では、フィールドにフォーカスを設定できず、表示するテキストがない場合、TextField をユーザー補助クライアントから参照することはできません。 (ShapeField.GetAccessibleState(ShapeElement, DiagramClientView) をオーバーライドします。) | |
GetAccessibleValue | ユーザー補助の値を返します。 (ShapeField.GetAccessibleValue(ShapeElement) をオーバーライドします。) | |
GetActiveInPlaceEditor | アクティブな埋め込み先エディターのコントロールを返します。このメソッドは null を返すことがあり、この場合、このフィールドでアクティブなインプレース エディターはありません。 (ShapeField.GetActiveInPlaceEditor(ShapeElement, DiagramClientView) をオーバーライドします。) | |
GetAutoSize | true の場合、テキスト フィールドの必要な最小のサイズは、表示テキストの長さに応じて大きくなります。サイズの自動設定が可能なテキスト フィールドは、AnchoringBehavior で指定された最小サイズを引き続き考慮します。 | |
GetBackgroundBrush | この図形フィールドが割り当てられている図形要素の背景を描画するブラシを取得します。 (ShapeField から継承されます。) | |
GetBackgroundBrushId | この図形フィールドが割り当てられている図形要素の背景を描画するブラシの ID を取得します。 (ShapeField から継承されます。) | |
GetBounds | 図形フィールドの境界を取得します。 (ShapeField から継承されます。) | |
GetCursor | マウスで図形フィールドをポイントしているときに表示されるポインターを取得します。 (ShapeField から継承されます。) | |
GetDisplayText | このフィールドで表示されるテキストを取得します。 | |
GetFocusable | 図形フィールドを取得し、フォーカスを受け取ることができるかどうかを確認します。 (ShapeField から継承されます。) | |
GetFont | ShapeElement の指定したインスタンスを描画するためのフォントを取得します。 | |
GetFontHeight | ワールド単位のこのフォント (つまり、テキスト行の高さ) の行間を取得します。行間は、アセント + ディセント + 推奨される余白です。アクセントはベースラインより上の文字の高さで、ディセントはベースラインより下の文字の高さです。余白はディセントの下にあります。 | |
GetFontId | ShapeElement の指定したインスタンスを描画するためのフォントの ID を取得します。 | |
GetHashCode | 既定のハッシュ関数として機能します。 (Object から継承されます。) | |
GetInPlaceEditorBounds | インプレース エディターの境界を取得します。 (ShapeField から継承されます。) | |
GetMaximumInPlaceEditorSize | 既定では、埋め込み先のエディット コントロールによって 75 文字までのサイズ変更が可能です。 (ShapeField.GetMaximumInPlaceEditorSize(ShapeElement) をオーバーライドします。) | |
GetMinimumInPlaceEditorSize | インプレース エディターの最小サイズは、最小の幅 (文字数) および高さ (行数) に基づいています。 (ShapeField.GetMinimumInPlaceEditorSize(ShapeElement) をオーバーライドします。) | |
GetMinimumSize | この ShapeField の最小の幅と高さを取得します (ワールド単位)。 (ShapeField.GetMinimumSize(ShapeElement) をオーバーライドします。) | |
GetMultipleLine | true の場合は、使用できる幅に収まるように、テキストを複数の行に折り返すことができます。 | |
GetPen | 図形フィールドが割り当てられている図形要素を描画するペンを取得します。 (ShapeField から継承されます。) | |
GetPenId | 図形フィールドが割り当てられている図形要素を描画するペンの ID を取得します。 (ShapeField から継承されます。) | |
GetPotentialMouseAction | ユーザーが次にダイアグラムの特定の点をクリックしたときにアクティブ化されるマウス操作を取得します。 (ShapeField から継承されます。) | |
GetSelectable | 図形フィールドを取得し、選択可能かどうかを確認します。 (ShapeField から継承されます。) | |
GetStringFormat | ShapeElement の指定したインスタンスのテキストを描画するための文字列書式を取得します。 | |
GetTextBrush | ShapeElement の指定したインスタンスのテキストを描画するためのブラシを取得します。 | |
GetTextBrushId | ShapeElement の指定したインスタンスのテキストを描画するためのブラシの ID を取得します。 | |
GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | |
GetValue | この TextField の値を取得します。 (ShapeField.GetValue(ShapeElement) をオーバーライドします。) | |
GetValueDomainPropertyInfo | 図形フィールドの値に割り当てられるドメイン プロパティを取得します。 (ShapeField から継承されます。) | |
GetVisible | 図形フィールドを取得し、表示されるかどうかを確認します。 (ShapeField から継承されます。) | |
HasFocusedAppearance | 図形フィールドを取得し、フォーカスを持っている状態で表示するかどうかを確認します。 (ShapeField から継承されます。) | |
HasPendingEdit | コミットが保留状態のままで、埋め込み先編集がアクティブであるかどうかを示す値を返します。 (ShapeField.HasPendingEdit(ShapeElement, DiagramClientView) をオーバーライドします。) | |
HasSelectedAppearance | 図形フィールドを取得し、選択された状態で表示されるかどうかを確認します。 (ShapeField から継承されます。) | |
IsNavigationKey(Char) | ユーザーが押したキーを取得し、図形フィールド間で移動するために使用できるかどうかを確認します。 (ShapeField から継承されます。) | |
IsNavigationKey(Keys) | ユーザーが押した複数のキーを取得し、図形フィールド間で移動するために使用できるかどうかを確認します。 (ShapeField から継承されます。) | |
MeasureDisplayText | 指定されたテキストを測定するヘルパー メソッド。 | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) | |
NavigateAscend | 選択した図形のナビゲーション シーケンス内の前の図形フィールドにフォーカスを移動します。 (ShapeField から継承されます。) | |
NavigateDescend | 選択した図形のナビゲーション シーケンス内の次の図形フィールドにフォーカスを移動します。 (ShapeField から継承されます。) | |
NavigateToFirst | 選択した図形のナビゲーション シーケンス内の最初の図形フィールドにフォーカスを移動します。 (ShapeField から継承されます。) | |
NavigateToLast | 選択した図形のナビゲーション シーケンス内の最後の図形フィールドにフォーカスを移動します。 (ShapeField から継承されます。) | |
NavigateToNext | 選択した図形のナビゲーション シーケンス内の次の図形フィールドにフォーカスを移動します。 (ShapeField から継承されます。) | |
NavigateToPrevious | 選択した図形のナビゲーション シーケンス内の前の図形フィールドにフォーカスを移動します。 (ShapeField から継承されます。) | |
OnBeginEdit | 埋め込み先編集が開始された場合にリスナーに警告します。 (ShapeField から継承されます。) | |
OnClick | ユーザーが図形フィールドをクリックした場合にリスナーに警告します。 (ShapeField から継承されます。) | |
OnDoubleClick | 既定では、埋め込み先編集を呼び出します。 (ShapeField.OnDoubleClick(DiagramPointEventArgs) をオーバーライドします。) | |
OnEndEdit | 埋め込み先編集が完了した場合にリスナーに警告します。 (ShapeField から継承されます。) | |
OnKeyDown | 図形フィールドをポイントしている場合にユーザーがキーを押したままの状態にしていることをリスナーに警告します。 (ShapeField から継承されます。) | |
OnKeyPress | フィールドが編集可能であり、英数字を入力した場合にエディターを呼び出します。 (ShapeField.OnKeyPress(DiagramKeyPressEventArgs) をオーバーライドします。) | |
OnKeyUp | 図形フィールドをポイントしている場合にユーザーがキーを離したことをリスナーに警告します。 (ShapeField から継承されます。) | |
OnMouseDown | ユーザーが図形フィールド上でマウス ボタンを押したままの状態にしている場合にリスナーに警告します。 (ShapeField から継承されます。) | |
OnMouseMove | マウスが図形フィールド上に移動された場合にリスナーに警告します。 (ShapeField から継承されます。) | |
OnMouseUp | ユーザーが図形フィールド上でマウス ボタンを離した場合にリスナーに警告します。 (ShapeField から継承されます。) | |
OnMouseWheel | マウスが図形フィールド上で回転された場合にリスナーに警告します。 (ShapeField から継承されます。) | |
Selected | 図形フィールドを取得し、選択されているかどうかを確認します。 (ShapeField から継承されます。) | |
SetSelectionRange | 選択を子の図形フィールドの範囲に設定します。 (ShapeField から継承されます。) | |
SetValue | 指定された値を図形フィールドに割り当てます。 (ShapeField から継承されます。) | |
SetVisible | 図形フィールドの可視性を設定します。 (ShapeField から継承されます。) | |
ToString | 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。) |
このページのトップへ
解説
図形のテキスト デコレータを定義すると、textfield で表されます。 TextFields などの ShapeFields の初期化の例については、DSL のソリューションの Dsl\GeneratedCode\Shapes.cs を確認します。
TextField は図形の内側の領域を管理するラベルに割り当てられた領域などのオブジェクトです。 TextField の 1 種類のインスタンスが同じクラスの多くの図形の間で共有されます。 TextField のインスタンスは各インスタンスのラベルのテキストを格納する: 代わりに、GetDisplayText(ShapeElement) のメソッドは、パラメーターとして図形を受け取り、図形、およびモデル要素の現在の状態のテキストの依存を検索できます。
テキスト フィールドの外観を決定する方法を
既定の DoPaint() のメソッドは、次のタスクを実行します。 これは、コードのプレゼンテーション簡単です:
// Simplified version:
public override void DoPaint(DiagramPaintEventArgs e, ShapeElement parentShape)
{
string text = GetDisplayText(shape);
StringFormat format = GetStringFormat(parentShape);
Brush brush = GetTextBrush(e.View, shape);
using (Font font = GetFont(shape))
{
e.Graphics.DrawString(text, font, brush, format);
}
}
// StringFormat determines whether the string is centered etc.
// To customize statically for all instances of this shape field,
// assign to DefaultStringFormat.
// To customize dynamically or per shape, override this:
public virtual StringFormat GetStringFormat(ShapeElement shape)
{ return DefaultStringFormat; }
// Override to customize the displayed string:
public virtual string GetDisplayText(ShapeElement shape)
{ return this.GetValue(shape).ToString(); }
// Brush determines the text color.
// To change the brush for every field, change the shape’s styleset.
// To customize to a brush in the style set, override GetTextBrushId.
// To change the brush to non-standard color, override this.
// Should take account of whether selected.
public virtual Brush GetTextBrush(DiagramClientView view, ShapeElement shape)
{ return shape.StyleSet.GetBrush(this.GetTextBrushId(view, shape)); }
// Brush ID selects a brush from a StyleSet.
// Either return a member of DiagramBrushes
// or add your own brush to the shape or application’s styleset.
// Override this to change dynamically or per instance.
// To change statically, just assign to default values.
public virtual StyleSetResourceId GetTextBrushId(DiagramClientView view, ShapeElement shape)
{ return IsSelected(view, shape) ? (view.Focused ? DefaultSelectedTextBrushId
: DefaultInactiveSelectedTextBrushId ) : DefaultTextBrushId ;
}
// Font determines the shape and size of the text.
// To change the font for every field, change the shape’s styleset.
// To customize to a font in the style set, override GetFontId.
// To change the font to a non-standard font, override this.
public virtual Font GetFont(ShapeElement shape)
{ return shape.StyleSet.GetFont(GetFontId(shape)); }
// Selects a font from a styleset.
// Either return a member of DiagramFonts or
// add your own font to the shape or application’s styleset.
// To change statically for all instances of this field,
// assign to DefaultFontId.
// To change per shape or dynamically, override this.
public virtual StyleSetResourceId GetFontId(ShapeElement parentShape)
{ return DefaultFontId; }
DefaultMultipleLine/GetMultipleLine()などの Get のメソッドとプロパティ Default の他のペアがあります。 既定のプロパティに図形フィールドのすべてのインスタンスの値を変更する場合は、値を割り当てることができます。 1 種類の図形のインスタンス間で値、または図形またはモデル要素の状態によって変わらするには、Get のメソッドをオーバーライドします。
静的なカスタマイズ
このシェイプ フィールドのインスタンスを変更する場合は、1 番目の一部として定義のプロパティを設定できるかどうかを調べます。 たとえば、プロパティ ウィンドウのフォント サイズとスタイルを設定できます。
そうでない場合、Shape クラスの InitializeShapeFields のメソッドをオーバーライドしないため、テキスト フィールドの Default... の適切なプロパティに値を代入します。
注意
InitializeShapeFields()をオーバーライドするには、DSL の定義に true Shape クラスの [double 型の派生が生成されます。] のプロパティを設定する必要があります。
この例では、図形にユーザー コメントに使用されるテキスト フィールドがあります。 これは、標準コメントのフォントを使用する必要があります。 コントロールのスタイル設定の標準フォントであるため、既定のフォント ID を設定しています:
partial class ExampleShape
{ protected override void InitializeShapeFields(IList<ShapeField> shapeFields)
{
// Fields set up according to DSL Definition:
base.InitializeShapeFields(shapeFields);
// Find and update comment field:
TextField commentField = ShapeElement.FindShapeField(shapeFields, "CommentDecorator") as TextField;
// Use the standard font for comments:
commentField.DefaultFontId = DiagramFonts.CommentText;
動的なカスタマイズ
図形またはモデル要素の状態によって変えさせます、TextField 独自のサブクラスを派生し、Get... の一つ以上のメソッドをオーバーライドします。 図形の InitializeShapeFields のメソッドをオーバーライドし、独自のクラス インスタンスと TextField のインスタンスが置換されます。
次の例では、図形のモデル要素の Boolean ドメインのプロパティの状態でテキスト フィールドに依存するフォントを作成します。
このコード例を実行するには、最小の言語テンプレートを使用して新しい DSL のソリューションを作成します。 ExampleElement のドメイン クラスに Boolean ドメインの AlternateState プロパティを追加します。 アイコンのデコレータを ExampleShape クラスに追加し、ビットマップ ファイルにイメージを設定します。 [すべてのテンプレートの変換] をクリックします。 DSL のプロジェクトの新しいコード ファイルを追加し、次のコードを挿入します。
コードをテストするには、F5 キーを押して、デバッグのソリューションで、サンプル図を開きます。 アイコンの既定の状態が表示されます。 プロパティ ウィンドウの形状を変更します [AlternateState] のプロパティの値を選択します。 要素名のフォントが変更されます。
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>
protected override void InitializeShapeFields(IList<ShapeField> shapeFields)
{
// Fields set up according to DSL Definition:
base.InitializeShapeFields(shapeFields);
// Replace the text field for NameDecorator:
TextField oldField = ShapeElement.FindShapeField(shapeFields, "NameDecorator") as TextField;
shapeFields.Remove(oldField);
// Replace with my text field based on DSL Definition values:
MyTextField newField = new MyTextField(oldField);
shapeFields.Add(newField);
}
}
/// <summary>
/// Dynamic font depends on state of model element.
/// </summary>
public class MyTextField : TextField
{
public MyTextField(TextField prototype)
: base(prototype.Name)
{
DefaultText = prototype.DefaultText;
DefaultFocusable = prototype.DefaultFocusable;
DefaultAutoSize = prototype.DefaultAutoSize;
AnchoringBehavior.MinimumHeightInLines = prototype.AnchoringBehavior.MinimumHeightInLines;
AnchoringBehavior.MinimumWidthInCharacters = prototype.AnchoringBehavior.MinimumWidthInCharacters;
DefaultAccessibleState = prototype.DefaultAccessibleState;
}
public override System.Drawing.Font GetFont(ShapeElement parentShape)
{
// Access the Boolean domain property of the model element:
if ((parentShape.ModelElement as ExampleElement).AlternateState)
return new System.Drawing.Font("Callisto", 14.0f,
System.Drawing.FontStyle.Italic |
System.Drawing.FontStyle.Bold);
else
return base.GetFont(parentShape);
}
}
スタイル設定
前の例では、使用できる任意のフォントにテキスト フィールドがどのように変わるかを示します。 ただし、目的のメソッドは、図形またはアプリケーションに関連付けられた一連のスタイルの 1 つに変更します。 これを行うには、GetFontId または GetTextBrushId() をオーバーライドしています。
また、オーバーライドの InitializeResourcesして図形のスタイル設定を変更することを検討してください。 これは、すべてのフィールドについてフォントとブラシを変更します。
スレッド セーフ
この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。