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 | |
---|---|---|
![]() |
TextField | Inicializa una nueva instancia de la clase TextField. |
Arriba
Propiedades
Nombre | Descripción | |
---|---|---|
![]() |
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). |
![]() |
DefaultAccessibleDescription | Obtiene o establece la descripción accesible predeterminada. (Se hereda de ShapeField). |
![]() |
DefaultAccessibleName | Obtiene o establece el nombre predeterminado del campo de la forma del objeto accesible. (Se hereda de ShapeField). |
![]() |
DefaultAccessibleState | Obtiene el estado predeterminado del campo de forma para el objeto accesible. (Se hereda de ShapeField). |
![]() |
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. |
![]() |
DefaultBackgroundBrushId | Obtiene o establece el identificador del pincel predeterminado para pintar el fondo del campo de forma. (Se hereda de ShapeField). |
![]() |
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. |
![]() |
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). |
![]() |
DefaultFontId | Obtiene o establece el identificador de fuente predeterminado. |
![]() |
DefaultInactiveSelectedBackgroundBrushId | Obtiene o establece el identificador del pincel de fondo predeterminado para el campo de forma. (Se hereda de ShapeField). |
![]() |
DefaultInactiveSelectedTextBrushId | Obtiene o establece el identificador del pincel predeterminado para el texto inactivo seleccionado. |
![]() |
DefaultIsHorizontal | Obtiene o establece el estado horizontal predeterminada para el texto. |
![]() |
DefaultMultipleLine | Si es true, el texto se ajusta automáticamente a más de una línea para caber en el ancho disponible. |
![]() |
DefaultPenId | Obtiene o establece el identificador del lápiz predeterminado que se va a usar para el campo de forma. (Se hereda de ShapeField). |
![]() |
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). |
![]() |
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). |
![]() |
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). |
![]() |
DefaultSelectedBackgroundBrushId | Obtiene o establece el identificador del pincel de fondo predeterminado para el campo de forma. (Se hereda de ShapeField). |
![]() |
DefaultSelectedTextBrushId | Obtiene o establece el identificador del pincel predeterminado para el texto seleccionado. |
![]() |
DefaultStringFormat | Obtiene o establece el formato de cadena predeterminado para el dibujo de texto. |
![]() |
DefaultText | Obtiene o establece el texto predeterminado que dibujar. |
![]() |
DefaultTextBrushId | Obtiene o establece el identificador del pincel predeterminado para el texto. |
![]() |
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). |
![]() |
DisplayMember | Obtiene o establece el nombre de propiedad al que está asociado el texto para mostrar. |
![]() |
DrawBorder | (No usar - se modificará) |
![]() |
FillBackground | (No usar - se modificará) |
![]() |
Name | Obtiene el nombre del campo de forma. (Se hereda de ShapeField). |
Arriba
Métodos
Nombre | Descripción | |
---|---|---|
![]() |
AccessibleDoDefaultAction | Realiza la acción predeterminada del objeto accesible. (Se hereda de ShapeField). |
![]() |
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)). |
![]() |
AssociateValueWith(Store, AssociatedPropertyInfo) | Asocia el campo de forma a una propiedad de dominio asignada a un elemento de forma. (Se hereda de ShapeField). |
![]() |
AssociateValueWith(Store, Guid) | Asocia el campo de forma a una propiedad de dominio asignada a un elemento de forma. (Se hereda de ShapeField). |
![]() |
AssociateValueWith(Store, Guid, AssociatedPropertyInfo) | Asocia el campo de forma a una propiedad de dominio asignada a un elemento de forma. (Se hereda de ShapeField). |
![]() |
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). |
![]() |
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). |
![]() |
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). |
![]() |
CanEditValue | Devuelve un valor que indica si el valor de este campo puede editarse. (Invalida a ShapeField.CanEditValue(ShapeElement, DiagramClientView)). |
![]() |
CommitPendingEdit | Confirma la edición pendiente. (Invalida a ShapeField.CommitPendingEdit(ShapeElement, DiagramClientView)). |
![]() |
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). |
![]() |
DoKeyboardNavigation | Navega en el campo de forma mediante el teclado. (Se hereda de ShapeField). |
![]() |
DoPaint | Dibuja el campo de texto. (Invalida a ShapeField.DoPaint(DiagramPaintEventArgs, ShapeElement)). |
![]() |
EditValue(ShapeElement, DiagramClientView) | Invoca el editor en contexto. (Invalida a ShapeField.EditValue(ShapeElement, DiagramClientView)). |
![]() |
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)). |
![]() |
EditValue(ShapeElement, DiagramClientView, String) | Invoca el editor en contexto y reemplaza el texto con el texto especificado. |
![]() |
Equals | Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object). |
![]() |
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). |
![]() |
FindFirstChild | Busca el primer campo de forma secundaria en el campo de la forma primaria. (Se hereda de ShapeField). |
![]() |
FindLastChild | Busca el último campo de forma secundaria en el campo de la forma primaria. (Se hereda de ShapeField). |
![]() |
FindNextChild | Busca el siguiente campo de forma secundaria en el campo de la forma primaria. (Se hereda de ShapeField). |
![]() |
FindNextInChildSubFields | Busca el campo siguiente de la forma secundaria en la secuencia de navegación. (Se hereda de ShapeField). |
![]() |
FindPreviousChild | Busca el campo anterior de la forma secundaria en el campo de la forma primaria. (Se hereda de ShapeField). |
![]() |
FindPreviousInChildSubFields | Busca el campo anterior de la forma secundaria en la secuencia de navegación. (Se hereda de ShapeField). |
![]() |
Focused | Obtiene el campo de la forma y comprueba si tiene el foco. (Se hereda de ShapeField). |
![]() |
GetAccessibilityObject | Obtiene el objeto de accesibilidad que se asigna al campo de forma. (Se hereda de ShapeField). |
![]() |
GetAccessibleChild | Obtiene el objeto de accesibilidad para el campo de forma secundaria. (Se hereda de ShapeField). |
![]() |
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). |
![]() |
GetAccessibleDefaultActionDescription | Obtiene el propósito predeterminado del campo de forma para el objeto accesible. (Se hereda de ShapeField). |
![]() |
GetAccessibleDescription | Devuelve la descripción accesible predeterminada para un campo de texto. (Invalida a ShapeField.GetAccessibleDescription(ShapeElement)). |
![]() |
GetAccessibleHelp | Obtiene la Ayuda del campo de la forma para el objeto accesible. (Se hereda de ShapeField). |
![]() |
GetAccessibleHelpTopicFileName | Obtiene un tema de la Ayuda para el objeto accesible. (Se hereda de ShapeField). |
![]() |
GetAccessibleHelpTopicId | Obtiene el identificador asignado al tema de Ayuda del objeto accesible. (Se hereda de ShapeField). |
![]() |
GetAccessibleName | Devuelve el texto para mostrar como nombre accesible. (Invalida a ShapeField.GetAccessibleName(ShapeElement)). |
![]() |
GetAccessibleRole | Recupera el rol accesible de este ShapeField. (Invalida a ShapeField.GetAccessibleRole(ShapeElement)). |
![]() |
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)). |
![]() |
GetAccessibleValue | Devuelve el valor accesible. (Invalida a ShapeField.GetAccessibleValue(ShapeElement)). |
![]() |
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)). |
![]() |
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. |
![]() |
GetBackgroundBrush | Obtiene el pincel que dibuja el fondo del elemento de forma al que está asignado este campo de forma. (Se hereda de ShapeField). |
![]() |
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). |
![]() |
GetBounds | Obtiene los límites del campo de forma. (Se hereda de ShapeField). |
![]() |
GetCursor | Obtiene el puntero que aparece cuando el mouse está señalando el campo de la forma. (Se hereda de ShapeField). |
![]() |
GetDisplayText | Obtiene el texto que se mostrará por este campo. |
![]() |
GetFocusable | Obtiene el campo de la forma y comprueba si puede recibir el foco. (Se hereda de ShapeField). |
![]() |
GetFont | Obtiene la fuente con la que se va a dibujar para la instancia especificada de ShapeElement. |
![]() |
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. |
![]() |
GetFontId | Obtiene el identificador de la fuente con la que se va a dibujar para la instancia especificada de ShapeElement. |
![]() |
GetHashCode | Sirve como la función hash predeterminada. (Se hereda de Object). |
![]() |
GetInPlaceEditorBounds | Obtiene los límites para el editor en contexto. (Se hereda de ShapeField). |
![]() |
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)). |
![]() |
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)). |
![]() |
GetMinimumSize | Obtiene el ancho y alto mínimo para este ShapeField en unidades universales (Invalida a ShapeField.GetMinimumSize(ShapeElement)). |
![]() |
GetMultipleLine | Si es true, el texto se puede ajustar en más de una línea para caber en el ancho disponible. |
![]() |
GetPen | Obtiene la pluma que dibuja el elemento de forma al que está asignado el campo de forma. (Se hereda de ShapeField). |
![]() |
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). |
![]() |
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). |
![]() |
GetSelectable | Obtiene el campo de la forma y comprueba si se puede seleccionar. (Se hereda de ShapeField). |
![]() |
GetStringFormat | Obtiene el formato de cadena con el que se dibuja el texto para la instancia especificada de ShapeElement. |
![]() |
GetTextBrush | Obtiene el pincel con el que se dibuja el texto para la instancia especificada de ShapeElement. |
![]() |
GetTextBrushId | Obtiene el identificador del pincel con el que se dibuja el texto para la instancia especificada de ShapeElement. |
![]() |
GetType | Obtiene el objeto Type de la instancia actual. (Se hereda de Object). |
![]() |
GetValue | Obtiene el valor de este TextField. (Invalida a ShapeField.GetValue(ShapeElement)). |
![]() |
GetValueDomainPropertyInfo | Obtiene la propiedad de dominio asignada al valor en el campo de forma. (Se hereda de ShapeField). |
![]() |
GetVisible | Obtiene el campo de la forma y comprueba si aparece. (Se hereda de ShapeField). |
![]() |
HasFocusedAppearance | Obtiene el campo de la forma y comprueba si debe aparecer para tener el foco. (Se hereda de ShapeField). |
![]() |
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)). |
![]() |
HasSelectedAppearance | Obtiene el campo de la forma y comprueba si parece estar seleccionado. (Se hereda de ShapeField). |
![]() |
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). |
![]() |
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). |
![]() |
MeasureDisplayText | Método de aplicación auxiliar para medir el texto especificado. |
![]() |
MemberwiseClone | Crea una copia superficial del objeto Object actual. (Se hereda de Object). |
![]() |
NavigateAscend | Mueve el foco al campo de forma anterior en la secuencia de navegación para las formas seleccionadas. (Se hereda de ShapeField). |
![]() |
NavigateDescend | Mueve el foco al siguiente campo de forma en la secuencia de navegación para las formas seleccionadas. (Se hereda de ShapeField). |
![]() |
NavigateToFirst | Mueve el foco al primer campo de forma en la secuencia de navegación para las formas seleccionadas. (Se hereda de ShapeField). |
![]() |
NavigateToLast | Mueve el foco al último campo de forma en la secuencia de navegación para las formas seleccionadas. (Se hereda de ShapeField). |
![]() |
NavigateToNext | Mueve el foco al siguiente campo de forma en la secuencia de navegación para las formas seleccionadas. (Se hereda de ShapeField). |
![]() |
NavigateToPrevious | Mueve el foco al campo de forma anterior en la secuencia de navegación para las formas seleccionadas. (Se hereda de ShapeField). |
![]() |
OnBeginEdit | Alerta a los agentes de escucha cuando ha comenzado la edición en contexto. (Se hereda de ShapeField). |
![]() |
OnClick | Alerta a los agentes de escucha cuando el usuario hace clic en un campo de forma. (Se hereda de ShapeField). |
![]() |
OnDoubleClick | Invoca la edición en contexto de forma predeterminada. (Invalida a ShapeField.OnDoubleClick(DiagramPointEventArgs)). |
![]() |
OnEndEdit | Alerta a los agentes de escucha cuando se ha completado la edición en contexto. (Se hereda de ShapeField). |
![]() |
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). |
![]() |
OnKeyPress | Invoca el editor si el campo es modificable y se escribe cualquier carácter alfanumérico. (Invalida a ShapeField.OnKeyPress(DiagramKeyPressEventArgs)). |
![]() |
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). |
![]() |
OnMouseDown | Alerta a los agentes de escucha cuando el usuario mantiene presionado el mouse sobre un campo de forma. (Se hereda de ShapeField). |
![]() |
OnMouseMove | Alerta a los agentes de escucha cuando el mouse se ha movido de un campo de la forma. (Se hereda de ShapeField). |
![]() |
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). |
![]() |
OnMouseWheel | Alerta a los agentes de escucha cuando el mouse se ha girado sobre un campo de la forma. (Se hereda de ShapeField). |
![]() |
Selected | Obtiene el campo de la forma y comprueba si está seleccionado. (Se hereda de ShapeField). |
![]() |
SetSelectionRange | Establece la selección en un intervalo de campos de forma secundaria. (Se hereda de ShapeField). |
![]() |
SetValue | Asigna el valor especificado a un campo de forma. (Se hereda de ShapeField). |
![]() |
SetVisible | Establece la visibilidad del campo de forma. (Se hereda de ShapeField). |
![]() |
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.
![]() |
---|
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)