共用方式為


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.11.0 (在 Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0.dll 中)

語法

'宣告
Public Class TextField _
    Inherits ShapeField
public class TextField : ShapeField

TextField 型別會公開下列成員。

建構函式

  名稱 說明
公用方法 TextField 初始化 TextField 類別的新執行個體。

回頁首

屬性

  名稱 說明
公用屬性 AnchoringBehavior 描述應該如何放置欄位的內容並將其相對於父 ShapeElement 自動調整本身。 (繼承自 ShapeField)。
公用屬性 DefaultAccessibleDescription 取得或設定預設的可存取描述。 (繼承自 ShapeField)。
公用屬性 DefaultAccessibleName 取得或設定可存取的物件由 shape 功能變數的預設名稱。 (繼承自 ShapeField)。
公用屬性 DefaultAccessibleState 取得可存取物件的 shape 功能變數的預設狀態。 (繼承自 ShapeField)。
公用屬性 DefaultAutoSize 如果文字欄位的最小值為 true,報告大小將擴張以容納 diplay 文字的長度。Autosizable 文字欄位仍會遵守 AnchoringBehavior 中所指定的大小最小值。
公用屬性 DefaultBackgroundBrushId 取得或設定預設的筆刷來繪製背景的 shape 功能變數的 ID。 (繼承自 ShapeField)。
公用屬性 DefaultCommitOnEscape 取得或設定值,指出是否 Escape 鍵認可編輯。如果為 true,Enter 鍵將作為 CRLF 就地編輯。
公用屬性 DefaultFocusable 取得由 shape 功能變數並驗證它是否可以接收焦點,或可讓 shape 功能變數會接收焦點。 (繼承自 ShapeField)。
公用屬性 DefaultFontId 取得或設定的預設字型識別碼。
公用屬性 DefaultInactiveSelectedBackgroundBrushId 取得或設定由 shape 功能變數的預設背景筆刷的 ID。 (繼承自 ShapeField)。
公用屬性 DefaultInactiveSelectedTextBrushId 取得或設定預設的筆刷 id,為非作用中選取的文字。
公用屬性 DefaultIsHorizontal 取得或設定文字的預設值水平狀態。
公用屬性 DefaultMultipleLine 如果為 true,文字會自動換行以符合可用寬度的多個線路。
公用屬性 DefaultPenId 取得或設定要用於 shape 功能變數的預設畫筆識別碼。 (繼承自 ShapeField)。
公用屬性 DefaultReflectParentFocusedState 取得子項塑造欄位,並且會驗證是否與其父圖案取得焦點,或設定以反映其父圖案的焦點狀態的能力時,它應該接收焦點。 (繼承自 ShapeField)。
公用屬性 DefaultReflectParentSelectedState 取得子項塑造欄位,並且會驗證是否應該會選取其父系圖形已選取,或設定的能力,以反映其父圖案的選取狀態時。 (繼承自 ShapeField)。
公用屬性 DefaultSelectable 取得 shape 功能變數,會驗證是否還可以選取預設或設定由 shape 功能變數的預設選取項目狀態。 (繼承自 ShapeField)。
公用屬性 DefaultSelectedBackgroundBrushId 取得或設定由 shape 功能變數的預設背景筆刷的 ID。 (繼承自 ShapeField)。
公用屬性 DefaultSelectedTextBrushId 取得或設定預設的筆刷 id,為選取的文字。
公用屬性 DefaultStringFormat 取得或設定字串的預設格式繪製的文字。
公用屬性 DefaultText 取得或設定要繪製的預設文字。
公用屬性 DefaultTextBrushId 取得或設定預設的筆刷 id 的文字。
公用屬性 DefaultVisibility 取得由 shape 功能變數並驗證它是否預設會出現,或設定預設的可視性由 shape 功能變數。 (繼承自 ShapeField)。
公用屬性 DisplayMember 取得或設定顯示文字與其相關聯的屬性名稱。
公用屬性 DrawBorder (不使用-將會變更)
公用屬性 FillBackground (不使用-將會變更)
公用屬性 Name 取得由 shape 功能變數的名稱。 (繼承自 ShapeField)。

回頁首

方法

  名稱 說明
公用方法 AccessibleDoDefaultAction 可存取物件不會執行預設動作。 (繼承自 ShapeField)。
公用方法 AllowInPlaceEditorAutoSize 預設情況下,允許大小的就地編輯程式自動表示該欄位支援自動調整大小。 (覆寫 ShapeField.AllowInPlaceEditorAutoSize(ShapeElement)。)
公用方法 AssociateValueWith(Store, AssociatedPropertyInfo) 將由 shape 功能變數產生關聯與網域屬性指派給圖形元素。 (繼承自 ShapeField)。
公用方法 AssociateValueWith(Store, Guid) 將由 shape 功能變數產生關聯與網域屬性指派給圖形元素。 (繼承自 ShapeField)。
公用方法 AssociateValueWith(Store, Guid, AssociatedPropertyInfo) 將由 shape 功能變數產生關聯與網域屬性指派給圖形元素。 (繼承自 ShapeField)。
公用方法 AssociateVisibilityWith(Store, AssociatedPropertyInfo) 建立由 shape 功能變數的可視性與網域屬性指派給圖形元素的關聯。 (繼承自 ShapeField)。
公用方法 AssociateVisibilityWith(Store, Guid) 建立由 shape 功能變數的可視性與網域屬性指派給圖形元素的關聯。 (繼承自 ShapeField)。
公用方法 AssociateVisibilityWith(Store, Guid, AssociatedPropertyInfo) 建立由 shape 功能變數的可視性與網域屬性指派給圖形元素的關聯。 (繼承自 ShapeField)。
公用方法 CanEditValue 傳回值,指出是否可以編輯此欄位的值。 (覆寫 ShapeField.CanEditValue(ShapeElement, DiagramClientView)。)
公用方法 CommitPendingEdit 認可暫止的編輯。 (覆寫 ShapeField.CommitPendingEdit(ShapeElement, DiagramClientView)。)
公用方法 DoHitTest 在圖表中,以判斷點是否位於 shape 功能變數的範圍中的指定點上執行點擊的測試。 (繼承自 ShapeField)。
公用方法 DoKeyboardNavigation 要使用鍵盤巡覽 shape 功能變數中。 (繼承自 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 在第一個子系 shape 功能變數中尋找父系 shape 功能變數。 (繼承自 ShapeField)。
公用方法 FindLastChild 在最後一個子系 shape 功能變數中尋找父系 shape 功能變數。 (繼承自 ShapeField)。
公用方法 FindNextChild 在下一個子系 shape 功能變數中尋找父系 shape 功能變數。 (繼承自 ShapeField)。
公用方法 FindNextInChildSubFields 在導覽順序中,找出下一個子系 shape 功能變數。 (繼承自 ShapeField)。
公用方法 FindPreviousChild 在前一個子系 shape 功能變數中尋找父系 shape 功能變數。 (繼承自 ShapeField)。
公用方法 FindPreviousInChildSubFields 在前一個子系 shape 功能變數中尋找這個巡覽順序。 (繼承自 ShapeField)。
公用方法 Focused 取得由 shape 功能變數,並確認其是否有焦點。 (繼承自 ShapeField)。
公用方法 GetAccessibilityObject 取得指派給由 shape 功能變數的存取範圍物件。 (繼承自 ShapeField)。
公用方法 GetAccessibleChild 取得子 shape 功能變數的存取範圍物件。 (繼承自 ShapeField)。
公用方法 GetAccessibleChildCount 取得指派給父 shape 功能變數及子系圖形欄位的存取範圍物件的數目。 (繼承自 ShapeField)。
公用方法 GetAccessibleDefaultActionDescription 取得可存取物件的預設的目的 shape 功能變數。 (繼承自 ShapeField)。
公用方法 GetAccessibleDescription 傳回在文字欄位的預設可存取描述。 (覆寫 ShapeField.GetAccessibleDescription(ShapeElement)。)
公用方法 GetAccessibleHelp 取得可存取物件的 shape 功能變數說明。 (繼承自 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,將文字欄位的最小必要的大小將擴張以容納 diplay 文字的長度。Autosizable 文字欄位仍會遵守 AnchoringBehavior 中所指定的大小最小值。
公用方法 GetBackgroundBrush 取得用來繪製為圖形項目指派給這個 shape 功能變數的背景的筆刷。 (繼承自 ShapeField)。
公用方法 GetBackgroundBrushId 取得用來繪製為圖形項目指派給這個 shape 功能變數的背景的筆刷的 ID。 (繼承自 ShapeField)。
公用方法 GetBounds 取得由 shape 功能變數的範圍。 (繼承自 ShapeField)。
公用方法 GetCursor 取得當滑鼠指向 [圖形] 欄位會出現指標。 (繼承自 ShapeField)。
公用方法 GetDisplayText 取得由這個欄位顯示的文字。
公用方法 GetFocusable 取得由 shape 功能變數,並驗證它的電腦可以接收的焦點。 (繼承自 ShapeField)。
公用方法 GetFont 取得要繪製具有指定的 ShapeElement 執行個體的字型。
公用方法 GetFontHeight 取得在全局單位表示的 (亦即,文字行高度) 這個字型的行距。行距是提高 + 降低 + 建議一些額外選項。上升部分是提高於基線,字元的高度和深度是低於基準的字元高度。額外低於深度。
公用方法 GetFontId 取得要繪製具有指定的 ShapeElement 執行個體的字型 id。
公用方法 GetHashCode 做為特定型別的雜湊函式。 (繼承自 Object)。
公用方法 GetInPlaceEditorBounds 取得編輯器的界限。 (繼承自 ShapeField)。
公用方法 GetMaximumInPlaceEditorSize 預設情況下,我們會允許進行就地編輯控制項重新調整大小的最多 75 個字元。 (覆寫 ShapeField.GetMaximumInPlaceEditorSize(ShapeElement)。)
公用方法 GetMinimumInPlaceEditorSize 最小值編輯器的大小根據以字元為單位的最小寬度和高度各行裡。 (覆寫 ShapeField.GetMinimumInPlaceEditorSize(ShapeElement)。)
公用方法 GetMinimumSize 取得的最小寬度和 heightfor 這個 ShapeField 在全局單位表示 (覆寫 ShapeField.GetMinimumSize(ShapeElement)。)
公用方法 GetMultipleLine 如果為 true,文字就可以換到一個以上的線,以符合可用寬度。
公用方法 GetPen 取得畫筆繪製已指派的 shape 功能變數的圖形項目。 (繼承自 ShapeField)。
公用方法 GetPenId 取得畫筆繪製已指派的 shape 功能變數的圖形元素的 ID。 (繼承自 ShapeField)。
公用方法 GetPotentialMouseAction 取得要啟動的使用者接下來按一下圖表上的特定點時的滑鼠動作。 (繼承自 ShapeField)。
公用方法 GetSelectable 取得由 shape 功能變數,並確認是否可以選取。 (繼承自 ShapeField)。
公用方法 GetStringFormat 取得要繪製文字與指定的 ShapeElement 執行個體的字串格式。
公用方法 GetTextBrush 取得的筆刷來繪製文字與指定的 ShapeElement 執行個體。
公用方法 GetTextBrushId 取得的筆刷來繪製文字與指定的 ShapeElement 執行個體 id。
公用方法 GetType 取得目前執行個體的 Type。 (繼承自 Object)。
公用方法 GetValue 取得這個 TextField 的值。 (覆寫 ShapeField.GetValue(ShapeElement)。)
公用方法 GetValueDomainPropertyInfo 取得網域屬性指派給由 shape 功能變數中的值。 (繼承自 ShapeField)。
公用方法 GetVisible 取得由 shape 功能變數,並驗證是否會出現。 (繼承自 ShapeField)。
公用方法 HasFocusedAppearance 取得由 shape 功能變數,會驗證是否看起來應該會有焦點。 (繼承自 ShapeField)。
公用方法 HasPendingEdit 傳回值,指出是否使用中,以認可暫止的就地編輯。 (覆寫 ShapeField.HasPendingEdit(ShapeElement, DiagramClientView)。)
公用方法 HasSelectedAppearance 取得由 shape 功能變數,會驗證是否顯示被選取。 (繼承自 ShapeField)。
公用方法 IsNavigationKey(Char) 取得使用者按下,並驗證是否它可用來瀏覽] 圖形的欄位之間的機碼。 (繼承自 ShapeField)。
公用方法 IsNavigationKey(Keys) 取得使用者按下,並驗證是否它們可用來瀏覽] 圖形的欄位之間的機碼。 (繼承自 ShapeField)。
受保護的方法 MeasureDisplayText 要測量的 helper 方法指定的文字。
受保護的方法 MemberwiseClone 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。
公用方法 NavigateAscend 將焦點移至前一個導覽順序選定圖案的 shape 功能變數中。 (繼承自 ShapeField)。
公用方法 NavigateDescend 將焦點移至下一步導覽順序選定圖案的 shape 功能變數中。 (繼承自 ShapeField)。
公用方法 NavigateToFirst 將焦點移至第一個選定圖案的巡覽順序的 shape 功能變數中。 (繼承自 ShapeField)。
公用方法 NavigateToLast 將焦點移至最後一個導覽順序選定圖案的 shape 功能變數中。 (繼承自 ShapeField)。
公用方法 NavigateToNext 將焦點移至下一步導覽順序選定圖案的 shape 功能變數中。 (繼承自 ShapeField)。
公用方法 NavigateToPrevious 將焦點移至前一個導覽順序選定圖案的 shape 功能變數中。 (繼承自 ShapeField)。
受保護的方法 OnBeginEdit 當就地編輯已開始時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnClick 當使用者按一下 shape 功能變數時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnDoubleClick 叫用預設的就地編輯。 (覆寫 ShapeField.OnDoubleClick(DiagramPointEventArgs)。)
受保護的方法 OnEndEdit 當就地編輯完成後,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnKeyDown 使用者已按住按鍵時指向 shape 功能變數時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnKeyPress 如果欄位是可編輯和鍵入任何字母數字字元,請叫用編輯器]。 (覆寫 ShapeField.OnKeyPress(DiagramKeyPressEventArgs)。)
公用方法 OnKeyUp 當使用者放開了索引鍵指向 shape 功能變數時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnMouseDown 當使用者透過 shape 功能變數時按住滑鼠時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnMouseMove 當滑鼠移 shape 功能變數時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnMouseUp 使用者已在 shape 功能變數上,放開滑鼠按鈕時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 OnMouseWheel 當滑鼠經過旋轉 shape 功能變數上時,系統會通知的接聽程式。 (繼承自 ShapeField)。
公用方法 Selected 取得由 shape 功能變數,並確認是否已選取。 (繼承自 ShapeField)。
公用方法 SetSelectionRange 將選取範圍設定某個範圍的子表單/報表] 圖形。 (繼承自 ShapeField)。
公用方法 SetValue 將指定的值指派給 shape 功能變數中。 (繼承自 ShapeField)。
公用方法 SetVisible 設定由 shape 功能變數的可視性。 (繼承自 ShapeField)。
公用方法 ToString 傳回表示目前物件的字串。 (繼承自 Object)。

回頁首

備註

當您定義文字裝飾邊線的端點時,它會以 TextField。有關 TextFields 及其他 ShapeFields 的初始設定的詳細資訊,請在您的 DSL 方案檢查 Dsl\GeneratedCode\Shapes.cs。

TextField 是物件,可管理的圖形,例如指派給標籤的空間內的區域。一個 TextField 執行個體都會共用相同類別的多個圖形之間。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; }

有數個其他成對的Get方法以及Default屬性,例如DefaultMultipleLine/GetMultipleLine()。您可以將值指派給正值 shape 功能變數的所有執行個體的預設屬性。若要變更到另一個,或者稱為相依的圖形或其模型項目狀態包含一個圖案的執行個體的值,請覆寫Get方法。

靜態的自訂項目

如果您想要變更這個 shape 功能變數的每個執行個體時,先了解是否設定屬性,以及在 DSL 定義中。比方說,您可以在 [屬性] 視窗中設定的字型及樣式。

如果不是,則覆寫InitializeShapeFields的圖形類別及指派到適當的值的方法Default...的文字欄位的屬性。

注意事項警告

若要覆寫InitializeShapeFields(),您必須設定會產生雙精度浮點的衍生要的圖形類別的屬性true DSL 定義中。

在這個範例中,圖形會有將用於使用者註解的文字欄位。我們想要使用標準註解的字型。由於這是標準的字型樣式集,我們就可以設定的預設字型識別碼:

 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 的執行個體。

下面範例將文字欄位的字型屬性的狀態,則為 True 的網域的圖形的模型項目而定。

若要執行這個範例程式碼,建立新的 DSL 方案使用最少的語言範本。將屬性新增到網域,則為 True AlternateState 至 ExampleElement 網域類別。新增圖示裝飾 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);
    }

  }

樣式設定

上述範例會示範如何變更 [文字] 欄位,以及在任何可用的字型。不過,較佳的方法是將它變更為其中一個圖案或應用程式相關聯的樣式集。若要執行這項操作,您覆寫GetFontId或 GetTextBrushId()。

或者,可以考慮變更圖形的樣式集,藉由覆寫InitializeResources。這有變更的字型和筆刷的所有圖形的欄位的影響。

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。不保證任何執行個體成員是安全執行緒。

請參閱

參考

Microsoft.VisualStudio.Modeling.Diagrams 命名空間

InitializeShapeFields

StyleSet

ShapeField