Поделиться через


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 Возвращает или задает имя по умолчанию поля формы для объекта со специальными возможностями. (Унаследовано от ShapeField.)
Открытое свойство DefaultAccessibleState Получает состояние по умолчанию поля формы для объекта со специальными возможностями. (Унаследовано от ShapeField.)
Открытое свойство DefaultAutoSize Если значение равно true, минимальное текстового поля сообщил, что приспособило должна, что размер длину diplay текста.Текстовые поля Autosizable по-прежнему будут учитывать минимальный размер, указанный в AnchoringBehavior.
Открытое свойство DefaultBackgroundBrushId Возвращает или задает идентификатор по умолчанию кисти для закрашивания фона поля формы. (Унаследовано от ShapeField.)
Открытое свойство DefaultCommitOnEscape Возвращает или задает значение, указывающее, сохраняет ли ключ escape правка.Значение true, если входной ключ будет использоваться как CRLF для редактирования на месте.
Открытое свойство DefaultFocusable Получает поле формы и проверяет ли оно может получать фокус или присваивает полю формы возможность получить фокус. (Унаследовано от ShapeField.)
Открытое свойство DefaultFontId Возвращает или задает идентификатор шрифта по умолчанию
Открытое свойство DefaultInactiveSelectedBackgroundBrushId Возвращает или задает идентификатор по умолчанию кисти фона для поля формы. (Унаследовано от ShapeField.)
Открытое свойство DefaultInactiveSelectedTextBrushId Получает или задает стандартный идентификатор кисти для неактивного выбранного текста.
Открытое свойство DefaultIsHorizontal Получает или задает горизонтальное состояние по умолчанию для текста.
Открытое свойство DefaultMultipleLine Значение true, если текст помощью программы-оболочки автоматически по более чем одной линией, который необходимо поместить в доступный ширины.
Открытое свойство DefaultPenId Возвращает или задает идентификатор по умолчанию пера, используемый для поля формы. (Унаследовано от ShapeField.)
Открытое свойство DefaultReflectParentFocusedState Получает поле формы дочернего элемента и проверяет, должен ли он получать фокус, если его родительская фигура получает фокус или задает возможность отразить состояние фокуса для своей родительской формы. (Унаследовано от ShapeField.)
Открытое свойство DefaultReflectParentSelectedState Получает поле формы дочернего элемента и проверяет, должна ли она быть выбрана, если выбрана родительская фигура или задает его возможности отражения состояния выделения своей родительской формы. (Унаследовано от ShapeField.)
Открытое свойство DefaultSelectable Получает поле формы и проверяет, может ли быть выбран по умолчанию или задает состояние по умолчанию выделения поля формы. (Унаследовано от ShapeField.)
Открытое свойство DefaultSelectedBackgroundBrushId Возвращает или задает идентификатор по умолчанию кисти фона для поля формы. (Унаследовано от ShapeField.)
Открытое свойство DefaultSelectedTextBrushId Получает или задает стандартный идентификатор кисти для выбранного текста.
Открытое свойство DefaultStringFormat Получает или задает стандартный формат строки для рисования текста.
Открытое свойство DefaultText Возвращает или задает текст по умолчанию для рисования.
Открытое свойство DefaultTextBrushId Получает или задает стандартный идентификатор кисти для текста.
Открытое свойство 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 Возвращает объект специальных возможностей для поля формы дочернего элемента. (Унаследовано от ShapeField.)
Открытый метод GetAccessibleChildCount Возвращает количество объектов со специальными возможностями, присвоенные родительский полю формы и его полям формы дочернего элемента. (Унаследовано от ShapeField.)
Открытый метод GetAccessibleDefaultActionDescription Возвращает назначение по умолчанию поля формы для объекта со специальными возможностями. (Унаследовано от ShapeField.)
Открытый метод GetAccessibleDescription Возвращает доступное описание по умолчанию для текстового поля. (Переопределяет ShapeField.GetAccessibleDescription(ShapeElement).)
Открытый метод GetAccessibleHelp Возвращает Справку поля формы для объекта со специальными возможностями. (Унаследовано от ShapeField.)
Открытый метод GetAccessibleHelpTopicFileName Возвращает тему справки для объекта со специальными возможностями. (Унаследовано от ShapeField.)
Открытый метод GetAccessibleHelpTopicId Возвращает идентификатор, присвоенный разделе Справки для объекта со специальными возможностями. (Унаследовано от 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 Возвращает кисть, которая рисует фон для элемента фигуры, к которому присвоено данное поле формы. (Унаследовано от ShapeField.)
Открытый метод GetBackgroundBrushId Получает идентификатор кисти, которая рисует фон для элемента фигуры, к которому присвоено данное поле формы. (Унаследовано от ShapeField.)
Открытый метод GetBounds Получает границы для поля формы. (Унаследовано от ShapeField.)
Открытый метод GetCursor Получает указатель, который появляется, когда мышь указывает на поле формы. (Унаследовано от ShapeField.)
Открытый метод GetDisplayText Возвращает текст отображаться этим полем.
Открытый метод GetFocusable Получает поле формы и проверяет ли оно может получать фокус. (Унаследовано от ShapeField.)
Открытый метод GetFont Возвращает шрифт для рисования с указанным экземпляром ShapeElement.
Открытый метод GetFontHeight Возвращает междустрочный интервал данного шрифта (то есть высота линии текст) в международных единицах измерения.Междустрочный интервал восхождение + спуск + некоторые рекомендованное extras.Восхождение высота символа над базовым планом и спуск высота символа под базовым планом.Extras в спуском.
Открытый метод GetFontId Получает идентификатор шрифта для рисования с указанным экземпляром ShapeElement.
Открытый метод GetHashCode Играет роль хэш-функции для определенного типа. (Унаследовано от Object.)
Открытый метод GetInPlaceEditorBounds Получает границы для редактора на месте. (Унаследовано от ShapeField.)
Открытый метод GetMaximumInPlaceEditorSize По умолчанию, разрешим элемент управления " Поле ввода " на месте, чтобы изменить размер до 75 символов. (Переопределяет ShapeField.GetMaximumInPlaceEditorSize(ShapeElement).)
Открытый метод GetMinimumInPlaceEditorSize Минимальный размер редактора на месте основан на минимальной высоты и ширины (в символах) в линиях. (Переопределяет ShapeField.GetMinimumInPlaceEditorSize(ShapeElement).)
Открытый метод GetMinimumSize Возвращает минимальные ширину и heightfor это ShapeField в международных единицах измерения (Переопределяет ShapeField.GetMinimumSize(ShapeElement).)
Открытый метод GetMultipleLine Значение true, если текст может создавать программу-оболочку более чем на одной линии в соответствии с размером доступной ширины.
Открытый метод GetPen Получает перо, которая рисует элемент фигуры, к которому присвоено поле формы. (Унаследовано от ShapeField.)
Открытый метод GetPenId Получает идентификатор пера, которая рисует элемент фигуры, к которому присвоено поле формы. (Унаследовано от ShapeField.)
Открытый метод GetPotentialMouseAction Возвращает действие, когда пользователь щелкает мышью активировать далее конкретный точку на диаграмме. (Унаследовано от ShapeField.)
Открытый метод GetSelectable Получает поле формы и проверяет ли оно может быть выбран. (Унаследовано от ShapeField.)
Открытый метод GetStringFormat Получает формат строки для рисования текста с указанным экземпляром ShapeElement.
Открытый метод GetTextBrush Возвращает кисть для рисования текста с указанным экземпляром ShapeElement.
Открытый метод GetTextBrushId Получает идентификатор для кисти рисования текста с указанным экземпляром ShapeElement.
Открытый метод 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 Alerts, прослушиватели, если редактирование на месте началось (Унаследовано от ShapeField.)
Открытый метод OnClick Alerts, прослушиватели, когда пользователь нажимает поле формы. (Унаследовано от ShapeField.)
Открытый метод OnDoubleClick Вызывает редактирования на месте по умолчанию. (Переопределяет ShapeField.OnDoubleClick(DiagramPointEventArgs).)
Защищенный метод OnEndEdit Alerts, прослушиватели, если редактирование на месте завершен. (Унаследовано от ShapeField.)
Открытый метод OnKeyDown Alerts, прослушиватели, когда пользователь удерживал ключом, указывающим на поле формы. (Унаследовано от ShapeField.)
Открытый метод OnKeyPress Вызывает редактор, если поле можно изменять и любой алфавитно-цифровой символ типизирован. (Переопределяет ShapeField.OnKeyPress(DiagramKeyPressEventArgs).)
Открытый метод OnKeyUp Alerts, прослушиватели, когда пользователь освобождал ключом, указывающим на поле формы. (Унаследовано от ShapeField.)
Открытый метод OnMouseDown Alerts, прослушиватели при удерживании пользователем при наведении курсора мыши на поле формы. (Унаследовано от ShapeField.)
Открытый метод OnMouseMove Alerts, прослушиватели, когда указатель мыши над полем формы было перемещено. (Унаследовано от ShapeField.)
Открытый метод OnMouseUp Alerts, прослушиватели, когда пользователь освобождал кнопка мыши находится над полем формы. (Унаследовано от ShapeField.)
Открытый метод OnMouseWheel Alerts, прослушиватели, когда мышь была вращано по полю формы. (Унаследовано от ShapeField.)
Открытый метод Selected Получает поле формы и проверяет, установлен ли он. (Унаследовано от ShapeField.)
Открытый метод SetSelectionRange Устанавливает выделение диапазона полей формы дочернего элемента. (Унаследовано от ShapeField.)
Открытый метод SetValue Присвоить указанное значение в поле формы. (Унаследовано от ShapeField.)
Открытый метод SetVisible Задает видимость поля формы. (Унаследовано от ShapeField.)
Открытый метод ToString Возвращает строку, представляющую текущий объект. (Унаследовано от Object.)

В начало страницы

Заметки

При указании оформителя текста в фигуре, она представлена TextField.Примеры инициализации TextFields и другого ShapeFields проверьте Dsl \ GeneratedCode \ Shapes.cs в решении DSL.

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().Можно присвоить значение свойству по умолчанию, чтобы изменить значение для всех экземпляров полей формы.Чтобы сделать значение отличаться от одного экземпляра формы в другую или зависимую ячейку в состоянии формы или ее элементов модели, переопределите Get метод.

Статические параметры

Если нужно изменить каждый экземпляр данного поля формы, первые распознают, можно ли установить свойство в определении DSL.Например, можно задать размер шрифта и стиля в окне свойства.

Если нет, затем переопределить InitializeShapeFields метод класса формы, и будет присвоено значение к соответствующему Default... свойство текстового поля.

Предупреждающее замечаниеВнимание

Переопределение InitializeShapeFields()следует задать Создает производный тип double свойство класса формы в 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 с экземпляром собственного класса.

В нижеследующем примере шрифт зависимых текстового поля в состоянии логического свойства домена элемента модели фигуры.

Чтобы выполнить этот пример, создайте новое решение DSL с помощью минимального шаблон языка.Добавьте логическое свойство домена 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.Это влияет изменение шрифтов и кисти для всех полей формы.

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

Microsoft.VisualStudio.Modeling.Diagrams - пространство имен

InitializeShapeFields

StyleSet

ShapeField