Condividi tramite


Classe TextField

Oggetto semplice che rappresenta una parte di una forma che può visualizzare aree o etichette di testo.

Gerarchia di ereditarietà

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

Spazio dei nomi:  Microsoft.VisualStudio.Modeling.Diagrams
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll)

Sintassi

'Dichiarazione
Public Class TextField _
    Inherits ShapeField
public class TextField : ShapeField

Il tipo TextField espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico TextField Inizializza una nuova istanza della classe TextField.

In alto

Proprietà

  Nome Descrizione
Proprietà pubblica AnchoringBehavior Descrive come il contenuto del campo deve posizionarsi e ridimensionarsi in relazione allo ShapeElement padre. (Ereditato da ShapeField)
Proprietà pubblica DefaultAccessibleDescription Ottiene o imposta la descrizione accessibile predefinita. (Ereditato da ShapeField)
Proprietà pubblica DefaultAccessibleName Ottiene o imposta il nome predefinito del campo della forma per l'oggetto accessibile. (Ereditato da ShapeField)
Proprietà pubblica DefaultAccessibleState Ottiene lo stato predefinito del campo della forma per l'oggetto accessibile. (Ereditato da ShapeField)
Proprietà pubblica DefaultAutoSize Se true, la dimensione minima riportata del campo di testo aumenta in base alla lunghezza del testo visualizzato.I campi di testo a ridimensionamento automatico rispetteranno sempre le dimensioni minime specificate in AnchoringBehavior.
Proprietà pubblica DefaultBackgroundBrushId Ottiene o imposta l'ID del pennello predefinito per lo sfondo del campo della forma. (Ereditato da ShapeField)
Proprietà pubblica DefaultCommitOnEscape Ottiene o imposta un valore che indica se il tasto ESC esegue il commit della modifica.Se true, viene utilizzato il tasto INVIO come CRLF per la modifica sul posto.
Proprietà pubblica DefaultFocusable Ottiene il campo della forma e verifica se può ricevere lo stato attivo oppure fornisce al campo la possibilità di ricevere lo stato attivo. (Ereditato da ShapeField)
Proprietà pubblica DefaultFontId Ottiene o imposta l'ID carattere predefinito.
Proprietà pubblica DefaultInactiveSelectedBackgroundBrushId Ottiene o imposta l'ID del pennello per lo sfondo predefinito del campo della forma. (Ereditato da ShapeField)
Proprietà pubblica DefaultInactiveSelectedTextBrushId Ottiene o imposta l'ID pennello predefinito per il testo selezionato inattivo.
Proprietà pubblica DefaultIsHorizontal Ottiene o imposta lo stato orizzontale predefinito per il testo.
Proprietà pubblica DefaultMultipleLine Se true, il testo va a capo automaticamente su più di una riga per adattarsi alla larghezza disponibile.
Proprietà pubblica DefaultPenId Ottiene o imposta l'ID della penna predefinita per il campo della forma. (Ereditato da ShapeField)
Proprietà pubblica DefaultReflectParentFocusedState Ottiene il campo della forma figlio e verifica se deve ricevere lo stato attivo quando lo riceve la relativa forma padre oppure imposta la possibilità di riflettere lo stato attivo della forma padre. (Ereditato da ShapeField)
Proprietà pubblica DefaultReflectParentSelectedState Ottiene il campo della forma figlio e verifica se deve essere selezionato quando viene selezionata la relativa forma padre oppure imposta la possibilità di riflettere lo stato di selezione della forma padre. (Ereditato da ShapeField)
Proprietà pubblica DefaultSelectable Ottiene il campo della forma e verifica se può essere selezionato per impostazione predefinita oppure imposta lo stato di selezione predefinita del campo della forma. (Ereditato da ShapeField)
Proprietà pubblica DefaultSelectedBackgroundBrushId Ottiene o imposta l'ID del pennello per lo sfondo predefinito del campo della forma. (Ereditato da ShapeField)
Proprietà pubblica DefaultSelectedTextBrushId Ottiene o imposta l'ID pennello predefinito per il testo selezionato inattivo.
Proprietà pubblica DefaultStringFormat Ottiene o imposta il formato stringa predefinito per il disegno del testo.
Proprietà pubblica DefaultText Ottiene o imposta il testo predefinito da disegnare.
Proprietà pubblica DefaultTextBrushId Ottiene o imposta l'ID pennello predefinito per il testo.
Proprietà pubblica DefaultVisibility Ottiene il campo della forma e verifica se viene visualizzato per impostazione predefinita oppure imposta la visibilità predefinita del campo della forma. (Ereditato da ShapeField)
Proprietà pubblica DisplayMember Ottiene o imposta il nome della proprietà a cui è associato il testo visualizzato.
Proprietà pubblica DrawBorder (Non utilizzare - verrà modificato)
Proprietà pubblica FillBackground (Non utilizzare - verrà modificato)
Proprietà pubblica Name Ottiene il nome del campo della forma. (Ereditato da ShapeField)

In alto

Metodi

  Nome Descrizione
Metodo pubblico AccessibleDoDefaultAction Esegue l'azione predefinita per l'oggetto accessibile. (Ereditato da ShapeField)
Metodo pubblico AllowInPlaceEditorAutoSize Per impostazione predefinita, consente all'editor sul posto di ridimensionarsi automaticamente se il campo supporta il ridimensionamento automatico. (Esegue l'override di ShapeField.AllowInPlaceEditorAutoSize(ShapeElement)).
Metodo pubblico AssociateValueWith(Store, AssociatedPropertyInfo) Associa il campo di forma con una proprietà del dominio assegnata a un elemento di forma. (Ereditato da ShapeField)
Metodo pubblico AssociateValueWith(Store, Guid) Associa il campo di forma con una proprietà del dominio assegnata a un elemento di forma. (Ereditato da ShapeField)
Metodo pubblico AssociateValueWith(Store, Guid, AssociatedPropertyInfo) Associa il campo di forma con una proprietà del dominio assegnata a un elemento di forma. (Ereditato da ShapeField)
Metodo pubblico AssociateVisibilityWith(Store, AssociatedPropertyInfo) Associa la visibilità del campo forma a una proprietà del dominio assegnata a un elemento di forma. (Ereditato da ShapeField)
Metodo pubblico AssociateVisibilityWith(Store, Guid) Associa la visibilità del campo forma a una proprietà del dominio assegnata a un elemento di forma. (Ereditato da ShapeField)
Metodo pubblico AssociateVisibilityWith(Store, Guid, AssociatedPropertyInfo) Associa la visibilità del campo forma a una proprietà del dominio assegnata a un elemento di forma. (Ereditato da ShapeField)
Metodo pubblico CanEditValue Restituisce un valore che indica se il valore di questo campo può essere modificato. (Esegue l'override di ShapeField.CanEditValue(ShapeElement, DiagramClientView)).
Metodo pubblico CommitPendingEdit Esegue il commit della modifica in sospeso. (Esegue l'override di ShapeField.CommitPendingEdit(ShapeElement, DiagramClientView)).
Metodo pubblico DoHitTest Esegue un hit test su un punto specificato nel diagramma per determinare se il punto si trova entro i limiti del campo della forma. (Ereditato da ShapeField)
Metodo pubblico DoKeyboardNavigation Consente di spostarsi nel campo della forma utilizzando la tastiera. (Ereditato da ShapeField)
Metodo pubblico DoPaint Disegna il campo testo. (Esegue l'override di ShapeField.DoPaint(DiagramPaintEventArgs, ShapeElement)).
Metodo pubblico EditValue(ShapeElement, DiagramClientView) Richiama l'editor sul posto. (Esegue l'override di ShapeField.EditValue(ShapeElement, DiagramClientView)).
Metodo pubblico EditValue(ShapeElement, DiagramClientView, PointD) Richiama l'editor sul posto, impostando il cursore tramite la posizione specificata del mouse. (Esegue l'override di ShapeField.EditValue(ShapeElement, DiagramClientView, PointD)).
Metodo pubblico EditValue(ShapeElement, DiagramClientView, String) Richiama l'editor sul posto, sostituendo il testo con il testo specificato.
Metodo pubblico Equals Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico FindFirstChild Individuare il primo campo figlio della forma nel campo padre della forma. (Ereditato da ShapeField)
Metodo pubblico FindLastChild Individuare l'ultimo campo figlio della forma nel campo padre della forma. (Ereditato da ShapeField)
Metodo pubblico FindNextChild Individuare il successivo campo figlio della forma nel campo padre della forma. (Ereditato da ShapeField)
Metodo pubblico FindNextInChildSubFields Individuare il successivo campo figlio della forma nella sequenza di navigazione. (Ereditato da ShapeField)
Metodo pubblico FindPreviousChild Individuare il precedente campo figlio della forma nel campo padre della forma. (Ereditato da ShapeField)
Metodo pubblico FindPreviousInChildSubFields Individuare il precedente campo figlio della forma nella sequenza di navigazione. (Ereditato da ShapeField)
Metodo pubblico Focused Ottiene il campo della forma e verifica se è nello stato attivo. (Ereditato da ShapeField)
Metodo pubblico GetAccessibilityObject Ottiene l'oggetto Accessibility assegnato al campo della forma. (Ereditato da ShapeField)
Metodo pubblico GetAccessibleChild Ottiene l'oggetto Accessibility per il campo figlio della forma. (Ereditato da ShapeField)
Metodo pubblico GetAccessibleChildCount Ottiene il numero di oggetti Accessibility assegnati al campo della forma padre e ai relativi campi della forma figlio. (Ereditato da ShapeField)
Metodo pubblico GetAccessibleDefaultActionDescription Ottiene lo scopo predefinito del campo della forma per l'oggetto accessibile. (Ereditato da ShapeField)
Metodo pubblico GetAccessibleDescription Restituisce la descrizione accessibile predefinita per un campo di testo. (Esegue l'override di ShapeField.GetAccessibleDescription(ShapeElement)).
Metodo pubblico GetAccessibleHelp Ottiene la Guida del campo della forma per l'oggetto accessibile. (Ereditato da ShapeField)
Metodo pubblico GetAccessibleHelpTopicFileName Ottiene un argomento della Guida per l'oggetto accessibile. (Ereditato da ShapeField)
Metodo pubblico GetAccessibleHelpTopicId Ottiene l'ID assegnato all'argomento della Guida per l'oggetto accessibile. (Ereditato da ShapeField)
Metodo pubblico GetAccessibleName Restituisce il testo visualizzato come nome accessibile. (Esegue l'override di ShapeField.GetAccessibleName(ShapeElement)).
Metodo pubblico GetAccessibleRole Recupera il ruolo accessibile di questo ShapeField. (Esegue l'override di ShapeField.GetAccessibleRole(ShapeElement)).
Metodo pubblico GetAccessibleState Recupera lo stato accessibile di questo TextField.Per impostazione predefinita, il TextField non è visibile ai client di accessibilità se il campo non è attivabile e non esiste testo da visualizzare. (Esegue l'override di ShapeField.GetAccessibleState(ShapeElement, DiagramClientView)).
Metodo pubblico GetAccessibleValue Restituisce il valore accessibile. (Esegue l'override di ShapeField.GetAccessibleValue(ShapeElement)).
Metodo pubblico GetActiveInPlaceEditor Restituisce il controllo per l'editor sul posto attivo.Questo metodo può restituire null, nel qual caso non è disponibile alcun editor sul posto attivo per questo campo. (Esegue l'override di ShapeField.GetActiveInPlaceEditor(ShapeElement, DiagramClientView)).
Metodo pubblico GetAutoSize Se true, la dimensione minima richiesta del campo di testo aumenta in base alla lunghezza del testo visualizzato.I campi di testo a ridimensionamento automatico rispetteranno sempre le dimensioni minime specificate in AnchoringBehavior.
Metodo pubblico GetBackgroundBrush Ottiene il pennello che consente di disegnare lo sfondo dell'elemento della forma a cui questo campo di forma è assegnato. (Ereditato da ShapeField)
Metodo pubblico GetBackgroundBrushId Ottiene l'ID del pennello che consente di disegnare lo sfondo dell'elemento della forma a cui è assegnato questo campo della forma. (Ereditato da ShapeField)
Metodo pubblico GetBounds Ottiene i limiti assoluti per il campo della forma. (Ereditato da ShapeField)
Metodo pubblico GetCursor Ottiene il puntatore che viene visualizzato quando il mouse punta sul campo della forma. (Ereditato da ShapeField)
Metodo pubblico GetDisplayText Ottiene il testo che deve essere visualizzato da questo campo.
Metodo pubblico GetFocusable Ottiene il campo della forma e verifica se può ricevere lo stato attivo. (Ereditato da ShapeField)
Metodo pubblico GetFont Ottiene il tipo di carattere con cui tracciare il testo per l'istanza di ShapeElement specificata.
Metodo pubblico GetFontHeight Ottiene l'interlinea di questo tipo di carattere (ovvero, l'altezza di una riga di testo) in unità world.L'interlinea è costituita dalla parte ascendente + la parte discendente + dello spazio ulteriore consigliato.L'ascent corrisponde all'altezza del carattere sopra la linea di base e la discesa corrisponde all'altezza del carattere sopra la linea di base.Lo spazio ulteriore consigliato è sotto la parte discendente.
Metodo pubblico GetFontId Ottiene l'ID del tipo di carattere con cui tracciare il testo per l'istanza di ShapeElement specificata.
Metodo pubblico GetHashCode Funge da funzione hash predefinita. (Ereditato da Object)
Metodo pubblico GetInPlaceEditorBounds Ottiene i limiti per l'editor sul posto. (Ereditato da ShapeField)
Metodo pubblico GetMaximumInPlaceEditorSize Per impostazione predefinita, si permette che il controllo di modifica sul posto ridimensioni un massimo di 75 caratteri. (Esegue l'override di ShapeField.GetMaximumInPlaceEditorSize(ShapeElement)).
Metodo pubblico GetMinimumInPlaceEditorSize La dimensione minima dell'editor sul posto è basata sulla larghezza minima in caratteri e sull'altezza minima in righe. (Esegue l'override di ShapeField.GetMinimumInPlaceEditorSize(ShapeElement)).
Metodo pubblico GetMinimumSize Ottiene la larghezza e la lunghezza minime per questo ShapeField in unità di misura internazionali (Esegue l'override di ShapeField.GetMinimumSize(ShapeElement)).
Metodo pubblico GetMultipleLine Se true, il testo può andare a capo automaticamente su più di una riga per adattarsi alla larghezza disponibile.
Metodo pubblico GetPen Ottiene la penna che consente di disegnare l'elemento della forma a cui è assegnato il campo della forma. (Ereditato da ShapeField)
Metodo pubblico GetPenId Ottiene l'ID della penna che consente di disegnare l'elemento della forma a cui è assegnato il campo della forma. (Ereditato da ShapeField)
Metodo pubblico GetPotentialMouseAction Ottiene l'azione del mouse da attivare quando l'utente fa clic su un punto specifico nel diagramma. (Ereditato da ShapeField)
Metodo pubblico GetSelectable Ottiene il campo della forma e verifica se può essere selezionato. (Ereditato da ShapeField)
Metodo pubblico GetStringFormat Ottiene il formato stringa per tracciare il testo per l'istanza di ShapeElement specificata.
Metodo pubblico GetTextBrush Ottiene il pennello con cui tracciare il testo per l'istanza di ShapeElement specificata.
Metodo pubblico GetTextBrushId Ottiene l'ID del pennello con cui tracciare il testo per l'istanza di ShapeElement specificata.
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico GetValue Ottiene il valore per TextField. (Esegue l'override di ShapeField.GetValue(ShapeElement)).
Metodo pubblico GetValueDomainPropertyInfo Ottiene la proprietà di dominio assegnata al valore nel campo della forma. (Ereditato da ShapeField)
Metodo pubblico GetVisible Ottiene il campo della forma e verifica se è visibile. (Ereditato da ShapeField)
Metodo pubblico HasFocusedAppearance Ottiene il campo della forma e verifica se deve apparire come nello stato attivo. (Ereditato da ShapeField)
Metodo pubblico HasPendingEdit Restituisce un valore che indica se la modifica sul posto è attiva, con commit delle modifiche in sospeso. (Esegue l'override di ShapeField.HasPendingEdit(ShapeElement, DiagramClientView)).
Metodo pubblico HasSelectedAppearance Ottiene il campo della forma e verifica se appare selezionato. (Ereditato da ShapeField)
Metodo pubblico IsNavigationKey(Char) Ottiene il tasto premuto dall'utente e verifica se può essere utilizzato per spostarsi tra i campi della forma. (Ereditato da ShapeField)
Metodo pubblico IsNavigationKey(Keys) Ottiene i tasti premuti dall'utente e verifica se possono essere utilizzati per spostarsi tra i campi della forma. (Ereditato da ShapeField)
Metodo protetto MeasureDisplayText Metodo di supporto per la misurazione di un determinato testo.
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblico NavigateAscend Sposta lo stato attivo sul precedente campo di forma nella sequenza di navigazione delle forme selezionate. (Ereditato da ShapeField)
Metodo pubblico NavigateDescend Sposta lo stato attivo sul successivo campo di forma nella sequenza di navigazione delle forme selezionate. (Ereditato da ShapeField)
Metodo pubblico NavigateToFirst Sposta lo stato attivo sul primo campo di forma nella sequenza di navigazione delle forme selezionate. (Ereditato da ShapeField)
Metodo pubblico NavigateToLast Sposta lo stato attivo sull'ultimo campo di forma nella sequenza di navigazione delle forme selezionate. (Ereditato da ShapeField)
Metodo pubblico NavigateToNext Sposta lo stato attivo sul successivo campo di forma nella sequenza di navigazione delle forme selezionate. (Ereditato da ShapeField)
Metodo pubblico NavigateToPrevious Sposta lo stato attivo sul precedente campo di forma nella sequenza di navigazione delle forme selezionate. (Ereditato da ShapeField)
Metodo protetto OnBeginEdit Avvisa i listener quando la modifica sul posto è iniziata. (Ereditato da ShapeField)
Metodo pubblico OnClick Avvisa i listener quando l'utente ha fatto clic su un campo di forma. (Ereditato da ShapeField)
Metodo pubblico OnDoubleClick Richiama la modifica sul posto per impostazione predefinita. (Esegue l'override di ShapeField.OnDoubleClick(DiagramPointEventArgs)).
Metodo protetto OnEndEdit Avvisa i listener quando la modifica sul posto è terminata. (Ereditato da ShapeField)
Metodo pubblico OnKeyDown Avvisa i listener quando l'utente ha mantenuto premuto un tasto puntando a un campo di forma. (Ereditato da ShapeField)
Metodo pubblico OnKeyPress Richiama l'editor se il campo è modificabile e qualsiasi carattere alfanumerico che viene digitato. (Esegue l'override di ShapeField.OnKeyPress(DiagramKeyPressEventArgs)).
Metodo pubblico OnKeyUp Avvisa i listener quando l'utente ha rilasciato un tasto puntando a un campo di forma. (Ereditato da ShapeField)
Metodo pubblico OnMouseDown Avvisa i listener quando l'utente sta tenendo premuto il pulsante del mouse su un campo di forma. (Ereditato da ShapeField)
Metodo pubblico OnMouseMove Avvisa i listener quando il mouse è stato spostato su un campo di forma. (Ereditato da ShapeField)
Metodo pubblico OnMouseUp Avvisa i listener quando l'utente ha rilasciato il pulsante del mouse su un campo di forma. (Ereditato da ShapeField)
Metodo pubblico OnMouseWheel Avvisa i listener quando il mouse è stato ruotato su un campo di forma. (Ereditato da ShapeField)
Metodo pubblico Selected Ottiene il campo della forma e verifica se è selezionato. (Ereditato da ShapeField)
Metodo pubblico SetSelectionRange Imposta la selezione su un intervallo di campi forma figlio. (Ereditato da ShapeField)
Metodo pubblico SetValue Assegna un valore specificato al campo della forma. (Ereditato da ShapeField)
Metodo pubblico SetVisible Imposta la visibilità del campo forma. (Ereditato da ShapeField)
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)

In alto

Note

Quando si definisce un elemento decorator di testo in una forma, è rappresentata da un TextField. Per esempi di inizializzazione di TextFields e altri controlli ShapeFields, ispezionare Dsl\GeneratedCode\Shapes.cs nella soluzione DSL.

Un TextField è un oggetto che gestisce un'area all'interno della forma, come lo spazio disponibile a un'etichetta. Un'istanza TextField è condivisa tra varie forme della stessa classe. L'istanza TextField non vengono archiviate separatamente il testo dell'etichetta per ogni istanza: invece, il metodo di GetDisplayText(ShapeElement) assume il formato come parametro e può trovare il dipendente del testo allo stato corrente della forma e dell'elemento del modello.

Come l'aspetto di un campo di testo viene determinato

Il metodo di DoPaint() di impostazione predefinita esegue queste attività. Si tratta di una presentazione semplificata del codice:

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

Esistono diverse altre coppie di metodi di Get e delle proprietà di Default, come DefaultMultipleLine/GetMultipleLine(). È possibile assegnare un valore alla proprietà predefinita per modificare il valore per tutte le istanze del campo della forma. Per impostare il valore su variare da un'istanza forma in un altro, oppure il dipendente sullo stato della forma o il relativo elemento del modello, eseguire l'override del metodo di Get.

Personalizzazioni statiche

Se si desidera modificare ogni istanza di questo campo shape, i primi per ottenere se è possibile impostare la proprietà nella definizione di linguaggio. Ad esempio, è possibile impostare la dimensione del carattere e lo stile nella Finestra Proprietà.

In caso contrario, quindi eseguire l'override del metodo di InitializeShapeFields della classe shape e assegnare un valore alla proprietà appropriata di Default... di campo di testo.

Avviso

Per eseguire l'override di InitializeShapeFields(), è necessario impostare la proprietà di Genera il doppio derivato della classe shape a true nella definizione di linguaggio.

In questo esempio, la forma ha un campo di testo che verrà utilizzato per le osservazioni dell'utente. Si desidera utilizzare il tipo di carattere standard di commento. Poiché è un tipo di carattere standard dal set di stile, è possibile impostare l'id predefinito del tipo:

 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;

Personalizzazioni dinamiche

Per consentire un aspetto può variare il dipendente stato di una forma o il relativo elemento del modello, derivare una sottoclasse di TextField ed eseguire l'override di uno o più metodi di Get... È anche necessario eseguire l'override del metodo di InitializeShapeFields della forma e sostituire l'istanza di TextField con un'istanza della classe.

L'esempio seguente fa il tipo di un dipendente di campo di testo sullo stato di una proprietà booleana del dominio dell'elemento del modello della forma.

Per eseguire questo codice di esempio, creare una nuova soluzione DSL utilizzando il modello minimo di linguaggio. Aggiungere una proprietà booleana AlternateState del dominio alla classe di dominio di ExampleElement. Aggiungere un elemento decorator di un'icona alla classe di ExampleShape e impostare la proprietà un'immagine in un file bitmap. Fare clic Trasforma tutti i modelli. Aggiungere un nuovo file di codice nel progetto di modello DSL e inserire il codice seguente.

Per testare il codice, premere F5 e, nella soluzione di debug, aprire un diagramma di esempio. Lo stato predefinito dell'icona deve essere visualizzato. Selezionare la forma, quindi nella Finestra Proprietà modificare il valore della proprietà di AlternateState. Il tipo di carattere del nome dell'elemento deve modificare.

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

  }

Impostazione dello stile

Illustrato nell'esempio precedente come modificare il campo di testo a qualsiasi carattere disponibile. Tuttavia, un metodo è preferibile di modificarla in uno di un insieme di stili associato alla forma o con l'applicazione. A tale scopo, eseguire l'override dell'GetFontId o GetTextBrushId ().

In alternativa, modificare lo stile della forma l'override dell'InitializeResources. Ciò ha l'effetto di modificare i tipi di carattere e pennelli per tutti i campi della forma.

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.Modeling.Diagrams

InitializeShapeFields

StyleSet

ShapeField