Partager via


TextField, classe

Objet léger qui représente une partie d'une forme qui peut afficher des étiquettes ou des zones de texte.

Hiérarchie d'héritage

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

Espace de noms :  Microsoft.VisualStudio.Modeling.Diagrams
Assembly :  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (dans Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll)

Syntaxe

'Déclaration
Public Class TextField _
    Inherits ShapeField
public class TextField : ShapeField

Le type TextField expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique TextField Initialise une nouvelle instance de la classe TextField.

Début

Propriétés

  Nom Description
Propriété publique AnchoringBehavior Décrit comment le contenu du champ doit se positionner et se dimensionner en fonction du ShapeElement parent. (Hérité de ShapeField.)
Propriété publique DefaultAccessibleDescription Obtient ou définit la description accessible par défaut. (Hérité de ShapeField.)
Propriété publique DefaultAccessibleName Obtient ou définit le nom par défaut du champ de forme pour l'objet accessible. (Hérité de ShapeField.)
Propriété publique DefaultAccessibleState Obtient l'état par défaut du champ de forme pour l'objet accessible. (Hérité de ShapeField.)
Propriété publique DefaultAutoSize Si la valeur est true, la taille signalée minimale augmente pour s'adapter à la longueur du texte d'affichage.Les champs de texte dimensionnables automatiquement respecteront toujours la taille minimale spécifiée dans AnchoringBehavior.
Propriété publique DefaultBackgroundBrushId Obtient ou définit l'ID du pinceau par défaut utilisé pour peindre l'arrière-plan du champ de forme. (Hérité de ShapeField.)
Propriété publique DefaultCommitOnEscape Obtient ou définit une valeur indiquant si la touche Echap valide la modification.Si la valeur est true, la touche Entrée sera utilisée comme CRLF pour la modification sur place.
Propriété publique DefaultFocusable Obtient le champ de forme et vérifie s'il peut recevoir le focus, ou donne au champ de forme la possibilité de recevoir le focus. (Hérité de ShapeField.)
Propriété publique DefaultFontId Obtient ou définit l'ID de police par défaut.
Propriété publique DefaultInactiveSelectedBackgroundBrushId Obtient ou définit l'ID du pinceau d'arrière-plan par défaut pour le champ de la forme. (Hérité de ShapeField.)
Propriété publique DefaultInactiveSelectedTextBrushId Obtient ou définit l'ID du pinceau par défaut pour le texte sélectionné inactif.
Propriété publique DefaultIsHorizontal Obtient ou définit l'état horizontal par défaut du texte.
Propriété publique DefaultMultipleLine Si la valeur est true, le texte est encapsulé sur plusieurs lignes pour être contenu dans la largeur disponible.
Propriété publique DefaultPenId Obtient ou définit l'ID du stylet par défaut à utiliser pour le champ de la forme. (Hérité de ShapeField.)
Propriété publique DefaultReflectParentFocusedState Obtient le champ de la forme enfant et vérifie s'il doit recevoir le focus lorsque sa forme parente reçoit le focus ou définit la capacité de refléter l'état de focus de sa forme parente. (Hérité de ShapeField.)
Propriété publique DefaultReflectParentSelectedState Obtient le champ de la forme enfant et vérifie s'il doit être sélectionné lorsque sa forme parente est activée ou définit la capacité de refléter l'état de sélection de sa forme parent. (Hérité de ShapeField.)
Propriété publique DefaultSelectable Obtient le champ de forme et vérifie s'il peut être sélectionné par défaut ou définit l'état de sélection par défaut du champ de forme. (Hérité de ShapeField.)
Propriété publique DefaultSelectedBackgroundBrushId Obtient ou définit l'ID du pinceau d'arrière-plan par défaut pour le champ de la forme. (Hérité de ShapeField.)
Propriété publique DefaultSelectedTextBrushId Obtient ou définit l'ID du pinceau par défaut pour le texte sélectionné.
Propriété publique DefaultStringFormat Obtient ou définit le format de chaîne par défaut pour le dessin de texte.
Propriété publique DefaultText Obtient ou définit le texte par défaut à dessiner.
Propriété publique DefaultTextBrushId Obtient ou définit l'ID du pinceau par défaut pour le texte.
Propriété publique DefaultVisibility Obtient le champ de forme et vérifie s'il apparaît par défaut ou définit la visibilité par défaut du champ de forme. (Hérité de ShapeField.)
Propriété publique DisplayMember Obtient ou définit le nom de la propriété à laquelle le texte est associé.
Propriété publique DrawBorder (Ne pas utiliser – modification à venir)
Propriété publique FillBackground (Ne pas utiliser – modification à venir)
Propriété publique Name Obtient le nom du champ de forme. (Hérité de ShapeField.)

Début

Méthodes

  Nom Description
Méthode publique AccessibleDoDefaultAction Exécute l'action par défaut pour l'objet accessible. (Hérité de ShapeField.)
Méthode publique AllowInPlaceEditorAutoSize Par défaut, autorisez l'éditeur sur place à effectuer un redimensionnement automatique si le champ prend en charge le redimensionnent automatique. (Substitue ShapeField.AllowInPlaceEditorAutoSize(ShapeElement).)
Méthode publique AssociateValueWith(Store, AssociatedPropertyInfo) Associe le champ de forme avec une propriété de domaine qui est assignée à un élément de forme. (Hérité de ShapeField.)
Méthode publique AssociateValueWith(Store, Guid) Associe le champ de forme avec une propriété de domaine qui est assignée à un élément de forme. (Hérité de ShapeField.)
Méthode publique AssociateValueWith(Store, Guid, AssociatedPropertyInfo) Associe le champ de forme avec une propriété de domaine qui est assignée à un élément de forme. (Hérité de ShapeField.)
Méthode publique AssociateVisibilityWith(Store, AssociatedPropertyInfo) Associe la visibilité du champ de forme avec une propriété de domaine qui est assignée à un élément de forme. (Hérité de ShapeField.)
Méthode publique AssociateVisibilityWith(Store, Guid) Associe la visibilité du champ de forme avec une propriété de domaine qui est assignée à un élément de forme. (Hérité de ShapeField.)
Méthode publique AssociateVisibilityWith(Store, Guid, AssociatedPropertyInfo) Associe la visibilité du champ de forme avec une propriété de domaine qui est assignée à un élément de forme. (Hérité de ShapeField.)
Méthode publique CanEditValue Retourne une valeur indiquant si la valeur de ce champ peut être modifiée. (Substitue ShapeField.CanEditValue(ShapeElement, DiagramClientView).)
Méthode publique CommitPendingEdit Valide les modifications en attente. (Substitue ShapeField.CommitPendingEdit(ShapeElement, DiagramClientView).)
Méthode publique DoHitTest Exécute un test de positionnement sur un point spécifié du diagramme pour déterminer si le point se trouve dans les limites du champ de forme. (Hérité de ShapeField.)
Méthode publique DoKeyboardNavigation Navigue dans le domaine de forme à l'aide du clavier. (Hérité de ShapeField.)
Méthode publique DoPaint Dessine le champ de texte. (Substitue ShapeField.DoPaint(DiagramPaintEventArgs, ShapeElement).)
Méthode publique EditValue(ShapeElement, DiagramClientView) Appelle l'éditeur sur place. (Substitue ShapeField.EditValue(ShapeElement, DiagramClientView).)
Méthode publique EditValue(ShapeElement, DiagramClientView, PointD) Appelle l'éditeur sur place, en définissant le signe insertion à la position de la souris spécifiée. (Substitue ShapeField.EditValue(ShapeElement, DiagramClientView, PointD).)
Méthode publique EditValue(ShapeElement, DiagramClientView, String) Appelle l'éditeur sur place, en remplaçant le texte par le texte spécifié.
Méthode publique Equals Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique FindFirstChild Localise le premier champ de forme enfant dans le champ de forme parent. (Hérité de ShapeField.)
Méthode publique FindLastChild Localise le dernier champ de forme enfant dans le champ de forme parent. (Hérité de ShapeField.)
Méthode publique FindNextChild Localise le prochain champ de forme enfant dans le champ de forme parent. (Hérité de ShapeField.)
Méthode publique FindNextInChildSubFields Localise le champ de forme enfant suivant dans la séquence de navigation. (Hérité de ShapeField.)
Méthode publique FindPreviousChild Localise le premier champ de forme enfant précédent dans le champ de forme parent. (Hérité de ShapeField.)
Méthode publique FindPreviousInChildSubFields Localise le champ de forme enfant précédent dans la séquence de navigation. (Hérité de ShapeField.)
Méthode publique Focused Obtient le champ de forme et vérifie s'il a le focus. (Hérité de ShapeField.)
Méthode publique GetAccessibilityObject Obtient l'objet d'accessibilité qui est assigné au champ de la forme. (Hérité de ShapeField.)
Méthode publique GetAccessibleChild Obtient l'objet Accessibility pour le champ enfant de la forme. (Hérité de ShapeField.)
Méthode publique GetAccessibleChildCount Obtient le nombre d'objets Accessibility assignés au champ de forme parent et à ses champs de forme enfants. (Hérité de ShapeField.)
Méthode publique GetAccessibleDefaultActionDescription Obtient l'objectif par défaut du champ de forme pour l'objet accessible. (Hérité de ShapeField.)
Méthode publique GetAccessibleDescription Retourne la description accessible par défaut pour un champ de texte. (Substitue ShapeField.GetAccessibleDescription(ShapeElement).)
Méthode publique GetAccessibleHelp Obtient l'aide du champ de forme pour l'objet accessible. (Hérité de ShapeField.)
Méthode publique GetAccessibleHelpTopicFileName Obtient une rubrique de l'aide associée à l'objet accessible. (Hérité de ShapeField.)
Méthode publique GetAccessibleHelpTopicId Obtient l'ID assigné à la rubrique d'aide de l'objet accessible. (Hérité de ShapeField.)
Méthode publique GetAccessibleName Retourne le texte affiché comme nom accessible. (Substitue ShapeField.GetAccessibleName(ShapeElement).)
Méthode publique GetAccessibleRole Extrait le rôle accessible de ce ShapeField. (Substitue ShapeField.GetAccessibleRole(ShapeElement).)
Méthode publique GetAccessibleState Extrait l'état accessible de ce TextField.Par défaut, le TextField est invisible aux clients d'accessibilité si le champ ne peut pas prendre le focus et s'il n'existe aucun texte à afficher. (Substitue ShapeField.GetAccessibleState(ShapeElement, DiagramClientView).)
Méthode publique GetAccessibleValue Retourne la valeur accessible. (Substitue ShapeField.GetAccessibleValue(ShapeElement).)
Méthode publique GetActiveInPlaceEditor Retourne le contrôle pour l'éditeur sur place actif.Cette méthode peut retourner une valeur, auquel cas, aucun éditeur sur place n'est actif pour ce champ. (Substitue ShapeField.GetActiveInPlaceEditor(ShapeElement, DiagramClientView).)
Méthode publique GetAutoSize Si la valeur est true, la taille signalée requise augmente pour s'adapter à la longueur du texte d'affichage.Les champs de texte dimensionnables automatiquement respecteront toujours la taille minimale spécifiée dans AnchoringBehavior.
Méthode publique GetBackgroundBrush Obtient le pinceau qui dessine l'arrière-plan de l'élément Shape auquel ce champ de forme est assigné. (Hérité de ShapeField.)
Méthode publique GetBackgroundBrushId Obtient l'ID du pinceau qui dessine l'arrière-plan de l'élément Shape auquel ce champ de forme est assigné. (Hérité de ShapeField.)
Méthode publique GetBounds Obtient les limites pour le champ de la forme. (Hérité de ShapeField.)
Méthode publique GetCursor Obtient le pointeur qui s'affiche lorsque la souris pointe sur le champ de forme. (Hérité de ShapeField.)
Méthode publique GetDisplayText Obtient le texte à afficher par ce champ.
Méthode publique GetFocusable Obtient le champ de forme et vérifie s'il peut recevoir le focus. (Hérité de ShapeField.)
Méthode publique GetFont Obtient la police avec laquelle dessiner pour l'instance ShapeElement spécifiée.
Méthode publique GetFontHeight Obtient l'espacement de la police. (c. - à-d., la hauteur d'une ligne de texte) dans des unités du monde.L'interligne est le jambage ascendant + jambage descendant + quelques plus recommandés.L'élévation est la hauteur du caractère au-dessus de la ligne de base. La profondeur est la hauteur du caractère au-dessous de la ligne de base.La hauteur supplémentaire se trouve sous le jambage descendant.
Méthode publique GetFontId Obtient l'identificateur de la police avec laquelle dessiner pour l'instance de ShapeElement spécifiée.
Méthode publique GetHashCode Sert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publique GetInPlaceEditorBounds Obtient les limites de l'éditeur sur place. (Hérité de ShapeField.)
Méthode publique GetMaximumInPlaceEditorSize Par défaut, nous permettons au contrôle d'édition sur place de redimensionner jusqu'à 75 caractères. (Substitue ShapeField.GetMaximumInPlaceEditorSize(ShapeElement).)
Méthode publique GetMinimumInPlaceEditorSize La taille d'éditeur sur place minimale est en fonction de la largeur minimale des caractères et de la hauteur des lignes. (Substitue ShapeField.GetMinimumInPlaceEditorSize(ShapeElement).)
Méthode publique GetMinimumSize Obtient la largeur et la hauteur minimales ce ShapeField en unités universelles. (Substitue ShapeField.GetMinimumSize(ShapeElement).)
Méthode publique GetMultipleLine Si la valeur est true, le texte peut être encapsulé sur plusieurs lignes pour s'ajuster à la largeur disponible.
Méthode publique GetPen Obtient le stylet utilisé pour dessiner l'élément de forme auquel le champ de forme est assigné. (Hérité de ShapeField.)
Méthode publique GetPenId Obtient l'ID du stylet utilisé pour dessiner l'élément Shape auquel le champ de forme est assigné. (Hérité de ShapeField.)
Méthode publique GetPotentialMouseAction Obtient l'action de la souris à activer lorsque l'utilisateur clique ensuite sur un point spécifique dans le diagramme. (Hérité de ShapeField.)
Méthode publique GetSelectable Obtient le champ de forme et vérifie s'il peut être sélectionné. (Hérité de ShapeField.)
Méthode publique GetStringFormat Obtient le format de chaîne avec lequel dessiner le texte pour l'instance de ShapeElement spécifiée.
Méthode publique GetTextBrush Obtient le pinceau avec lequel dessiner le texte pour l'instance de ShapeElement spécifiée.
Méthode publique GetTextBrushId Obtient l'identificateur du pinceau avec lequel dessiner le texte pour l'instance de ShapeElement spécifiée.
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique GetValue Obtient la valeur pour ce TextField. (Substitue ShapeField.GetValue(ShapeElement).)
Méthode publique GetValueDomainPropertyInfo Obtient la propriété de domaine qui est assignée à la valeur dans le champ de forme. (Hérité de ShapeField.)
Méthode publique GetVisible Obtient le champ de forme et vérifie s'il apparaît. (Hérité de ShapeField.)
Méthode publique HasFocusedAppearance Obtient le champ de forme et vérifie s'il doit apparaître comme ayant le focus. (Hérité de ShapeField.)
Méthode publique HasPendingEdit Retourne une valeur indiquant si l'édition sur place est active, avec une validation en attente. (Substitue ShapeField.HasPendingEdit(ShapeElement, DiagramClientView).)
Méthode publique HasSelectedAppearance Obtient le champ de forme et vérifie s'il semble être sélectionné. (Hérité de ShapeField.)
Méthode publique IsNavigationKey(Char) Obtient la clé que l'utilisateur a utilisée et vérifie si elle peut être utilisée pour naviguer entre les champs de forme. (Hérité de ShapeField.)
Méthode publique IsNavigationKey(Keys) Obtient les clés utilisées par l'utilisateur et vérifie si elles peuvent être utilisées pour naviguer entre les champs de forme. (Hérité de ShapeField.)
Méthode protégée MeasureDisplayText Méthode d'assistance pour mesurer le texte spécifié.
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publique NavigateAscend Déplace le focus sur le champ de forme précédent dans la séquence de navigation pour les formes sélectionnées. (Hérité de ShapeField.)
Méthode publique NavigateDescend Déplace le focus sur le prochain champ de forme dans la séquence de navigation pour les formes sélectionnées. (Hérité de ShapeField.)
Méthode publique NavigateToFirst Déplace le focus sur le premier champ de forme dans la séquence de navigation pour les formes sélectionnées. (Hérité de ShapeField.)
Méthode publique NavigateToLast Déplace le focus sur le dernier champ de forme dans la séquence de navigation pour les formes sélectionnées. (Hérité de ShapeField.)
Méthode publique NavigateToNext Déplace le focus sur le prochain champ de forme dans la séquence de navigation pour les formes sélectionnées. (Hérité de ShapeField.)
Méthode publique NavigateToPrevious Déplace le focus sur le champ de forme précédent dans la séquence de navigation pour les formes sélectionnées. (Hérité de ShapeField.)
Méthode protégée OnBeginEdit Avertit les écouteurs lorsque l'édition sur place a commencé. (Hérité de ShapeField.)
Méthode publique OnClick Avertit les écouteurs lorsque l'utilisateur a cliqué sur un champ de forme. (Hérité de ShapeField.)
Méthode publique OnDoubleClick Appelle la modification sur place par défaut. (Substitue ShapeField.OnDoubleClick(DiagramPointEventArgs).)
Méthode protégée OnEndEdit Avertit les écouteurs lorsque l'édition sur place est terminée. (Hérité de ShapeField.)
Méthode publique OnKeyDown Avertit les écouteurs lorsque l'utilisateur maintient une touche enfoncée tout en pointant un champ de forme avec la souris. (Hérité de ShapeField.)
Méthode publique OnKeyPress Appelle l'éditeur si le champ est modifiable et si n'importe quel caractère alphanumérique est saisi. (Substitue ShapeField.OnKeyPress(DiagramKeyPressEventArgs).)
Méthode publique OnKeyUp Avertit les écouteurs lorsque l'utilisateur a relâché une touche tout en pointant un champ de forme avec la souris. (Hérité de ShapeField.)
Méthode publique OnMouseDown Avertit les écouteurs lorsque l'utilisateur maintient le bouton de la souris enfoncé sur un champ de forme. (Hérité de ShapeField.)
Méthode publique OnMouseMove Avertit les écouteurs lorsque la souris a été déplacée sur un champ de forme. (Hérité de ShapeField.)
Méthode publique OnMouseUp Avertit les écouteurs lorsque l'utilisateur a relâché le bouton de la souris sur un champ de forme. (Hérité de ShapeField.)
Méthode publique OnMouseWheel Avertit les écouteurs lorsque la souris a été pivotée au-dessus un champ de forme. (Hérité de ShapeField.)
Méthode publique Selected Obtient le champ de forme et vérifie s'il est sélectionné. (Hérité de ShapeField.)
Méthode publique SetSelectionRange Définit la sélection sur une plage de champs de forme enfants. (Hérité de ShapeField.)
Méthode publique SetValue Assigne la valeur spécifiée à un champ de forme. (Hérité de ShapeField.)
Méthode publique SetVisible Définit la visibilité du champ de forme. (Hérité de ShapeField.)
Méthode publique ToString Retourne une chaîne qui représente l'objet actif. (Hérité de Object.)

Début

Notes

Lorsque vous définissez un décorateur de texte dans une forme, elle est représentée par un TextField. Pour obtenir des exemples de l'initialisation de TextFields et d'un autre ShapeFields, inspectez DSL GeneratedCode\\ Shapes.cs dans votre solution business DSL.

Un TextField est un objet qui gère une zone dans une forme, telles que l'espace attribué à un nom. Une instance de TextField est partagée entre de nombreuses formes à la même classe. L'instance de TextField ne stocke pas le texte de l'étiquette séparément pour chaque instance : au lieu de cela, la méthode d'GetDisplayText(ShapeElement) prend la forme en tant que paramètre, puis peut rechercher le dépendant de texte sur l'état actuel de la forme et de son élément de modèle.

Comment l'apparence d'un champ de texte est déterminée

La méthode d'DoPaint() par défaut effectue ces tâches. Il s'agit d'une vue simplifiée de son code :

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

Il existe plusieurs autres paires de méthodes d'Get et propriétés d'Default, telles que DefaultMultipleLine/GetMultipleLine(). Vous pouvez affecter une valeur à la propriété par défaut pour modifier la valeur pour toutes les instances du champ de forme. Pour permettre la valeur à varier d'une instance de type à un autre, ou le dépendant sur l'état de la forme ou son élément de modèle, substituez la méthode de Get.

Personnalisations statiques

Si vous souhaitez modifier chaque instance du champ de forme, la première découverte si vous pouvez définir la propriété dans la définition de DSL. Par exemple, vous pouvez définir la taille de police et le style dans la fenêtre Propriétés.

Remplacez le cas contraire, la méthode d'InitializeShapeFields de la classe de forme, puis affectez une valeur à la propriété appropriée d'Default... du champ de texte.

Avertissement

Pour remplacer InitializeShapeFields(), vous devez définir la propriété Génère un double dérivée de la classe de forme à true dans la définition de DSL.

Dans cet exemple, une forme un champ de texte qui sera utilisé pour les commentaires des utilisateurs. Nous souhaitons utiliser la police standard de commentaire. Puisqu'il s'agit d'une police standard de l'ensemble de style, il est possible de définir l'ID de police par défaut :

 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;

Personnalisations dynamiques

Pour faire varier l'apparence le dépend de l'état d'une forme ou son élément de modèle, dériver votre propre sous-classe d'TextField et remplacer une ou plusieurs méthodes d'Get... Vous devez également substituer la méthode d'InitializeShapeFields de la forme, puis remplacez l'instance du TextField par une instance de votre propre classe.

L'exemple suivant configure la police d'un dépend de champ de texte sur l'état d'une propriété booléenne de domaine de l'élément de modèle de la forme.

Pour exécuter cet exemple de code, créez une nouvelle solution de DSL à l'aide de le modèle minimale de langage. Ajoutez une propriété de domaine AlternateState valeur booléenne de la classe de domaine d'ExampleElement. Ajoutez un décorateur d'icône à la classe d'ExampleShape, et définir son image dans un fichier bitmap. Cliquez sur Transformer tous les modèles. Ajoutez un nouveau fichier de code dans le projet de DSL, puis insérez le code suivant.

Pour tester le code, appuyez sur F5 et, dans la solution de débogage, ouvrez un exemple de schéma. L'état par défaut de l'icône doit apparaître. Sélectionnez la forme et dans la fenêtre des Propriétés, remplacez la valeur de la propriété AlternateState. La police du nom d'élément doit modifier.

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

  }

Ensembles de style

L'exemple précédent montre comment vous pouvez modifier le champ de texte à toutes les polices disponibles. Toutefois, une méthode est préférable de la modifier à une d'un ensemble de styles associé à de la forme ou de l'application. Pour cela, vous remplacez l'GetFontId ou le GetTextBrushId().

Également, envisagez de modifier le style la valeur de la forme en remplaçant l'InitializeResources. Ceci a un effet de modifier les polices et les pinceaux pour tous les champs de forme.

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Microsoft.VisualStudio.Modeling.Diagrams, espace de noms

InitializeShapeFields

StyleSet

ShapeField