次の方法で共有


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) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

参照

関連項目

Microsoft.VisualStudio.Modeling.Diagrams 名前空間

InitializeShapeFields

StyleSet

ShapeField