Compartir a través de


TextField (Clase)

Objeto ligero que representa un elemento de una forma que puede mostrar etiquetas o áreas de texto.

Jerarquía de herencia

System.Object
  Microsoft.VisualStudio.Modeling.Diagrams.ShapeField
    Microsoft.VisualStudio.Modeling.Diagrams.TextField
      Microsoft.VisualStudio.Modeling.Diagrams.LabelTextField

Espacio de nombres:  Microsoft.VisualStudio.Modeling.Diagrams
Ensamblado:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (en Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll)

Sintaxis

'Declaración
Public Class TextField _
    Inherits ShapeField
public class TextField : ShapeField

El tipo TextField expone los siguientes miembros.

Constructores

  Nombre Descripción
Método público TextField Inicializa una nueva instancia de la clase TextField.

Arriba

Propiedades

  Nombre Descripción
Propiedad pública AnchoringBehavior Describe cómo la forma debe colocar y el tamaño propio mientras la forma primaria desplaza y cambia su tamaño. (Se hereda de ShapeField).
Propiedad pública DefaultAccessibleDescription Obtiene o establece la descripción accesible predeterminada. (Se hereda de ShapeField).
Propiedad pública DefaultAccessibleName Obtiene o establece el nombre predeterminado del campo de la forma del objeto accesible. (Se hereda de ShapeField).
Propiedad pública DefaultAccessibleState Obtiene el estado predeterminado del campo de forma para el objeto accesible. (Se hereda de ShapeField).
Propiedad pública DefaultAutoSize Si es true, el tamaño mínimo del campo de texto notificado crecerá para ajustarse a la longitud del texto de la pantalla.Los campos de texto de ajuste de tamaño automático respetarán el tamaño mínimo especificado en el AnchoringBehavior.
Propiedad pública DefaultBackgroundBrushId Obtiene o establece el identificador del pincel predeterminado para pintar el fondo del campo de forma. (Se hereda de ShapeField).
Propiedad pública DefaultCommitOnEscape Obtiene o establece un valor que indica si la tecla Escape (Esc) confirma la edición.Si es true, la tecla ENTRAR se usará como CRLF para la edición en contexto.
Propiedad pública DefaultFocusable Obtiene el campo de la forma y comprueba si puede recibir el foco, o proporciona al campo de la forma la capacidad de recibir el foco. (Se hereda de ShapeField).
Propiedad pública DefaultFontId Obtiene o establece el identificador de fuente predeterminado.
Propiedad pública DefaultInactiveSelectedBackgroundBrushId Obtiene o establece el identificador del pincel de fondo predeterminado para el campo de forma. (Se hereda de ShapeField).
Propiedad pública DefaultInactiveSelectedTextBrushId Obtiene o establece el identificador del pincel predeterminado para el texto inactivo seleccionado.
Propiedad pública DefaultIsHorizontal Obtiene o establece el estado horizontal predeterminada para el texto.
Propiedad pública DefaultMultipleLine Si es true, el texto se ajusta automáticamente a más de una línea para caber en el ancho disponible.
Propiedad pública DefaultPenId Obtiene o establece el identificador del lápiz predeterminado que se va a usar para el campo de forma. (Se hereda de ShapeField).
Propiedad pública DefaultReflectParentFocusedState Obtiene el campo de la forma secundaria y comprueba si debe recibir el foco cuando su forma primaria recibe el foco, o bien establece la capacidad para reflejar el estado del foco de su forma primaria. (Se hereda de ShapeField).
Propiedad pública DefaultReflectParentSelectedState Obtiene el campo de la forma secundaria y comprueba si debe seleccionarse cuando se selecciona su forma primaria, o bien establece la capacidad de reflejar el estado de selección de su forma primaria. (Se hereda de ShapeField).
Propiedad pública DefaultSelectable Obtiene el campo de la forma y comprueba si puede estar seleccionada de forma predeterminada, o establece el estado de selección predeterminado del campo de la forma. (Se hereda de ShapeField).
Propiedad pública DefaultSelectedBackgroundBrushId Obtiene o establece el identificador del pincel de fondo predeterminado para el campo de forma. (Se hereda de ShapeField).
Propiedad pública DefaultSelectedTextBrushId Obtiene o establece el identificador del pincel predeterminado para el texto seleccionado.
Propiedad pública DefaultStringFormat Obtiene o establece el formato de cadena predeterminado para el dibujo de texto.
Propiedad pública DefaultText Obtiene o establece el texto predeterminado que dibujar.
Propiedad pública DefaultTextBrushId Obtiene o establece el identificador del pincel predeterminado para el texto.
Propiedad pública DefaultVisibility Obtiene el campo de la forma y compruebe si aparece de forma predeterminada, o establece la visibilidad predeterminada del campo de la forma. (Se hereda de ShapeField).
Propiedad pública DisplayMember Obtiene o establece el nombre de propiedad al que está asociado el texto para mostrar.
Propiedad pública DrawBorder (No usar - se modificará)
Propiedad pública FillBackground (No usar - se modificará)
Propiedad pública Name Obtiene el nombre del campo de forma. (Se hereda de ShapeField).

Arriba

Métodos

  Nombre Descripción
Método público AccessibleDoDefaultAction Realiza la acción predeterminada del objeto accesible. (Se hereda de ShapeField).
Método público AllowInPlaceEditorAutoSize De forma predeterminada, permita que el editor en contexto se dimensione automáticamente si el campo admite el ajuste de tamaño automático. (Invalida a ShapeField.AllowInPlaceEditorAutoSize(ShapeElement)).
Método público AssociateValueWith(Store, AssociatedPropertyInfo) Asocia el campo de forma a una propiedad de dominio asignada a un elemento de forma. (Se hereda de ShapeField).
Método público AssociateValueWith(Store, Guid) Asocia el campo de forma a una propiedad de dominio asignada a un elemento de forma. (Se hereda de ShapeField).
Método público AssociateValueWith(Store, Guid, AssociatedPropertyInfo) Asocia el campo de forma a una propiedad de dominio asignada a un elemento de forma. (Se hereda de ShapeField).
Método público AssociateVisibilityWith(Store, AssociatedPropertyInfo) Asocia la visibilidad del campo de forma a una propiedad de dominio asignada a un elemento de forma. (Se hereda de ShapeField).
Método público AssociateVisibilityWith(Store, Guid) Asocia la visibilidad del campo de forma a una propiedad de dominio asignada a un elemento de forma. (Se hereda de ShapeField).
Método público AssociateVisibilityWith(Store, Guid, AssociatedPropertyInfo) Asocia la visibilidad del campo de forma a una propiedad de dominio asignada a un elemento de forma. (Se hereda de ShapeField).
Método público CanEditValue Devuelve un valor que indica si el valor de este campo puede editarse. (Invalida a ShapeField.CanEditValue(ShapeElement, DiagramClientView)).
Método público CommitPendingEdit Confirma la edición pendiente. (Invalida a ShapeField.CommitPendingEdit(ShapeElement, DiagramClientView)).
Método público DoHitTest Realiza una prueba de posicionamiento en un punto especificado del diagrama para determinar si el punto está en los límites del campo de forma. (Se hereda de ShapeField).
Método público DoKeyboardNavigation Navega en el campo de forma mediante el teclado. (Se hereda de ShapeField).
Método público DoPaint Dibuja el campo de texto. (Invalida a ShapeField.DoPaint(DiagramPaintEventArgs, ShapeElement)).
Método público EditValue(ShapeElement, DiagramClientView) Invoca el editor en contexto. (Invalida a ShapeField.EditValue(ShapeElement, DiagramClientView)).
Método público EditValue(ShapeElement, DiagramClientView, PointD) Invoca el editor en contexto, estableciendo el símbolo de intercalación mediante la posición del mouse especificada. (Invalida a ShapeField.EditValue(ShapeElement, DiagramClientView, PointD)).
Método público EditValue(ShapeElement, DiagramClientView, String) Invoca el editor en contexto y reemplaza el texto con el texto especificado.
Método público Equals Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público FindFirstChild Busca el primer campo de forma secundaria en el campo de la forma primaria. (Se hereda de ShapeField).
Método público FindLastChild Busca el último campo de forma secundaria en el campo de la forma primaria. (Se hereda de ShapeField).
Método público FindNextChild Busca el siguiente campo de forma secundaria en el campo de la forma primaria. (Se hereda de ShapeField).
Método público FindNextInChildSubFields Busca el campo siguiente de la forma secundaria en la secuencia de navegación. (Se hereda de ShapeField).
Método público FindPreviousChild Busca el campo anterior de la forma secundaria en el campo de la forma primaria. (Se hereda de ShapeField).
Método público FindPreviousInChildSubFields Busca el campo anterior de la forma secundaria en la secuencia de navegación. (Se hereda de ShapeField).
Método público Focused Obtiene el campo de la forma y comprueba si tiene el foco. (Se hereda de ShapeField).
Método público GetAccessibilityObject Obtiene el objeto de accesibilidad que se asigna al campo de forma. (Se hereda de ShapeField).
Método público GetAccessibleChild Obtiene el objeto de accesibilidad para el campo de forma secundaria. (Se hereda de ShapeField).
Método público GetAccessibleChildCount Obtiene el número de objetos de accesibilidad asignados al campo de la forma primaria y sus campos de forma secundaria. (Se hereda de ShapeField).
Método público GetAccessibleDefaultActionDescription Obtiene el propósito predeterminado del campo de forma para el objeto accesible. (Se hereda de ShapeField).
Método público GetAccessibleDescription Devuelve la descripción accesible predeterminada para un campo de texto. (Invalida a ShapeField.GetAccessibleDescription(ShapeElement)).
Método público GetAccessibleHelp Obtiene la Ayuda del campo de la forma para el objeto accesible. (Se hereda de ShapeField).
Método público GetAccessibleHelpTopicFileName Obtiene un tema de la Ayuda para el objeto accesible. (Se hereda de ShapeField).
Método público GetAccessibleHelpTopicId Obtiene el identificador asignado al tema de Ayuda del objeto accesible. (Se hereda de ShapeField).
Método público GetAccessibleName Devuelve el texto para mostrar como nombre accesible. (Invalida a ShapeField.GetAccessibleName(ShapeElement)).
Método público GetAccessibleRole Recupera el rol accesible de este ShapeField. (Invalida a ShapeField.GetAccessibleRole(ShapeElement)).
Método público GetAccessibleState Recupera el estado accesible de este TextField.De forma predeterminada, el TextField no es visible para los clientes de accesibilidad si el campo no puede recibir el foco y no hay texto para mostrar. (Invalida a ShapeField.GetAccessibleState(ShapeElement, DiagramClientView)).
Método público GetAccessibleValue Devuelve el valor accesible. (Invalida a ShapeField.GetAccessibleValue(ShapeElement)).
Método público GetActiveInPlaceEditor Devuelve el control para el editor en contexto activo.Este método puede devolver null, en cuyo caso no hay ningún editor en contexto activo para este campo. (Invalida a ShapeField.GetActiveInPlaceEditor(ShapeElement, DiagramClientView)).
Método público GetAutoSize Si es true, el tamaño mínimo del campo de texto requerido crecerá para ajustarse a la longitud del texto de la pantalla.Los campos de texto de ajuste de tamaño automático respetarán el tamaño mínimo especificado en el AnchoringBehavior.
Método público GetBackgroundBrush Obtiene el pincel que dibuja el fondo del elemento de forma al que está asignado este campo de forma. (Se hereda de ShapeField).
Método público GetBackgroundBrushId Obtiene el identificador del pincel que dibuja el fondo del elemento de forma al que está asignado este campo de forma. (Se hereda de ShapeField).
Método público GetBounds Obtiene los límites del campo de forma. (Se hereda de ShapeField).
Método público GetCursor Obtiene el puntero que aparece cuando el mouse está señalando el campo de la forma. (Se hereda de ShapeField).
Método público GetDisplayText Obtiene el texto que se mostrará por este campo.
Método público GetFocusable Obtiene el campo de la forma y comprueba si puede recibir el foco. (Se hereda de ShapeField).
Método público GetFont Obtiene la fuente con la que se va a dibujar para la instancia especificada de ShapeElement.
Método público GetFontHeight Obtiene el interlineado de esta fuente (es decir, el alto de una línea de texto) en unidades universal.El interlineado es ascenso + descenso + alguna adición recomendada.El ascenso es el alto del carácter sobre la línea base y el descenso es el alto del carácter bajo la línea base.El sobrante está bajo el descenso.
Método público GetFontId Obtiene el identificador de la fuente con la que se va a dibujar para la instancia especificada de ShapeElement.
Método público GetHashCode Sirve como la función hash predeterminada. (Se hereda de Object).
Método público GetInPlaceEditorBounds Obtiene los límites para el editor en contexto. (Se hereda de ShapeField).
Método público GetMaximumInPlaceEditorSize De forma predeterminada, permitimos que el control de edición en contexto cambie el tamaño hasta a 75 caracteres. (Invalida a ShapeField.GetMaximumInPlaceEditorSize(ShapeElement)).
Método público GetMinimumInPlaceEditorSize El tamaño mínimo del editor en contexto se basa en el ancho mínimo de los caracteres y el alto de las líneas. (Invalida a ShapeField.GetMinimumInPlaceEditorSize(ShapeElement)).
Método público GetMinimumSize Obtiene el ancho y alto mínimo para este ShapeField en unidades universales (Invalida a ShapeField.GetMinimumSize(ShapeElement)).
Método público GetMultipleLine Si es true, el texto se puede ajustar en más de una línea para caber en el ancho disponible.
Método público GetPen Obtiene la pluma que dibuja el elemento de forma al que está asignado el campo de forma. (Se hereda de ShapeField).
Método público GetPenId Obtiene el identificador de la pluma que dibuja el elemento de forma al que está asignado el campo de forma. (Se hereda de ShapeField).
Método público GetPotentialMouseAction Obtiene la acción del mouse que se activará la próxima vez que el usuario haga clic en un punto concreto del diagrama. (Se hereda de ShapeField).
Método público GetSelectable Obtiene el campo de la forma y comprueba si se puede seleccionar. (Se hereda de ShapeField).
Método público GetStringFormat Obtiene el formato de cadena con el que se dibuja el texto para la instancia especificada de ShapeElement.
Método público GetTextBrush Obtiene el pincel con el que se dibuja el texto para la instancia especificada de ShapeElement.
Método público GetTextBrushId Obtiene el identificador del pincel con el que se dibuja el texto para la instancia especificada de ShapeElement.
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método público GetValue Obtiene el valor de este TextField. (Invalida a ShapeField.GetValue(ShapeElement)).
Método público GetValueDomainPropertyInfo Obtiene la propiedad de dominio asignada al valor en el campo de forma. (Se hereda de ShapeField).
Método público GetVisible Obtiene el campo de la forma y comprueba si aparece. (Se hereda de ShapeField).
Método público HasFocusedAppearance Obtiene el campo de la forma y comprueba si debe aparecer para tener el foco. (Se hereda de ShapeField).
Método público HasPendingEdit Devuelve un valor que indica si la edición en contexto está activa, con una confirmación de los cambios pendientes. (Invalida a ShapeField.HasPendingEdit(ShapeElement, DiagramClientView)).
Método público HasSelectedAppearance Obtiene el campo de la forma y comprueba si parece estar seleccionado. (Se hereda de ShapeField).
Método público IsNavigationKey(Char) Obtiene la clave que el usuario presionó y comprueba si se puede usar para navegar entre los campos de la forma. (Se hereda de ShapeField).
Método público IsNavigationKey(Keys) Obtiene las claves que el usuario presionó y comprueba si se pueden usar para navegar entre los campos de la forma. (Se hereda de ShapeField).
Método protegido MeasureDisplayText Método de aplicación auxiliar para medir el texto especificado.
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público NavigateAscend Mueve el foco al campo de forma anterior en la secuencia de navegación para las formas seleccionadas. (Se hereda de ShapeField).
Método público NavigateDescend Mueve el foco al siguiente campo de forma en la secuencia de navegación para las formas seleccionadas. (Se hereda de ShapeField).
Método público NavigateToFirst Mueve el foco al primer campo de forma en la secuencia de navegación para las formas seleccionadas. (Se hereda de ShapeField).
Método público NavigateToLast Mueve el foco al último campo de forma en la secuencia de navegación para las formas seleccionadas. (Se hereda de ShapeField).
Método público NavigateToNext Mueve el foco al siguiente campo de forma en la secuencia de navegación para las formas seleccionadas. (Se hereda de ShapeField).
Método público NavigateToPrevious Mueve el foco al campo de forma anterior en la secuencia de navegación para las formas seleccionadas. (Se hereda de ShapeField).
Método protegido OnBeginEdit Alerta a los agentes de escucha cuando ha comenzado la edición en contexto. (Se hereda de ShapeField).
Método público OnClick Alerta a los agentes de escucha cuando el usuario hace clic en un campo de forma. (Se hereda de ShapeField).
Método público OnDoubleClick Invoca la edición en contexto de forma predeterminada. (Invalida a ShapeField.OnDoubleClick(DiagramPointEventArgs)).
Método protegido OnEndEdit Alerta a los agentes de escucha cuando se ha completado la edición en contexto. (Se hereda de ShapeField).
Método público OnKeyDown Alerta a los agentes de escucha cuando el usuario ha mantenido presionada una tecla al señalar a un campo de forma. (Se hereda de ShapeField).
Método público OnKeyPress Invoca el editor si el campo es modificable y se escribe cualquier carácter alfanumérico. (Invalida a ShapeField.OnKeyPress(DiagramKeyPressEventArgs)).
Método público OnKeyUp Alerta a los agentes de escucha cuando el usuario ha soltado una tecla al señalar a un campo de forma. (Se hereda de ShapeField).
Método público OnMouseDown Alerta a los agentes de escucha cuando el usuario mantiene presionado el mouse sobre un campo de forma. (Se hereda de ShapeField).
Método público OnMouseMove Alerta a los agentes de escucha cuando el mouse se ha movido de un campo de la forma. (Se hereda de ShapeField).
Método público OnMouseUp Alerta a los agentes de escucha cuando el usuario suelta el botón del mouse sobre un campo de la forma. (Se hereda de ShapeField).
Método público OnMouseWheel Alerta a los agentes de escucha cuando el mouse se ha girado sobre un campo de la forma. (Se hereda de ShapeField).
Método público Selected Obtiene el campo de la forma y comprueba si está seleccionado. (Se hereda de ShapeField).
Método público SetSelectionRange Establece la selección en un intervalo de campos de forma secundaria. (Se hereda de ShapeField).
Método público SetValue Asigna el valor especificado a un campo de forma. (Se hereda de ShapeField).
Método público SetVisible Establece la visibilidad del campo de forma. (Se hereda de ShapeField).
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).

Arriba

Comentarios

Cuando se define un elemento decorator de texto en una forma, se representa mediante un TextField. Para obtener ejemplos de inicialización de TextFields y otros ShapeFields, inspeccione Dsl\GeneratedCode\Shapes.cs en la solución ADSL.

Un TextField es un objeto que administra un área dentro de una forma, como el espacio asignado a una etiqueta. Una instancia de TextField comparten muchas formas de la misma clase. La instancia de TextField no almacena el texto de la etiqueta por separado para cada instancia: en su lugar, el método de GetDisplayText(ShapeElement) toma la forma como parámetro y, puede buscar el dependiente de texto en el estado actual de la forma y del elemento de modelo.

Cómo el aspecto de un campo de texto se determina

El método de DoPaint() predeterminado realiza estas tareas. Ésta es una presentación simplificada del código:

// 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; }

Hay otros pares de métodos de Get y propiedades de Default , como DefaultMultipleLine/GetMultipleLine(). Puede asignar un valor a la propiedad predeterminada para cambiar el valor de todas las instancias del campo de la forma. Para que el valor varían de una instancia de una forma a otra, o el dependiente en el estado de la forma o su elemento de modelo, invalide el método de Get .

Personalizaciones estáticas

Si desea cambiar cada instancia de este campo de la forma, el primer averigüe si puede establecer la propiedad en la definición del ADSL. Por ejemplo, puede establecer el tamaño de fuente y estilo en la ventana Propiedades.

Si no, entonces invalide el método de InitializeShapeFields de la clase shape, y asignar un valor a la propiedad correspondiente de Default... de campo de texto.

Nota de precauciónPrecaución

Para reemplazar InitializeShapeFields(), debe establecer la propiedad de Genera el doble derivado de la clase shape a true en la definición del ADSL.

En este ejemplo, la forma tiene un campo de texto que se utiliza para los comentarios del usuario. Deseamos utilizar la fuente estándar de comentario. Porque es una fuente estándar del estilo, podemos establecer el identificador de fuente predeterminado:

 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;

Personalizaciones dinámicas

Para que el aspecto varía según el estado de una forma o su elemento de modelo, derive la propia subclase de TextField y reemplace uno o más métodos de Get... También debe reemplazar el método de InitializeShapeFields de la forma, y reemplaza la instancia de TextField con una instancia de dispone de la clase.

El ejemplo siguiente se crea la fuente de un dependiente del campo de texto en el estado de una propiedad boolean del dominio del elemento del modelo de la forma.

Para ejecutar este código de ejemplo, cree una nueva solución ADSL utilizando la plantilla de lenguaje mínimos. Agregue una propiedad booleana AlternateState de dominio a la clase de dominio de ExampleElement. Agregue un elemento decorator de icono a la clase de ExampleShape, y establezca la imagen a un archivo de mapa de bits. Haga clic en Transformar todas las plantillas. Agregue un nuevo archivo de código en el proyecto ADSL, e inserte el código siguiente.

Para probar el código, presione F5 y, en la solución de depuración, abra un diagrama de ejemplo. El estado predeterminado de icono debe aparecer. Seleccione la forma y en la ventana Propiedades, cambie el valor de la propiedad de AlternateState . La fuente del nombre del elemento debe cambiar.

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);
    }

  }

Conjuntos de estilo

El ejemplo anterior muestra cómo modificar el campo de texto a cualquier fuente disponible. Sin embargo, un método preferible es cambiarlo por uno de un conjunto de estilos asociado a la forma o a la aplicación. Para ello, reemplace GetFontId o GetTextBrushId().

Si lo desea, también puede cambiar el conjunto de estilo de la forma reemplazando InitializeResources. Esto tiene el efecto de cambiar las fuentes y los pinceles para todos los campos de la forma.

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

Microsoft.VisualStudio.Modeling.Diagrams (Espacio de nombres)

InitializeShapeFields

StyleSet

ShapeField