Partilhar via


Classe TextField

Objeto leve que representa uma parte de uma forma que possa exibir rótulos de texto ou áreas.

Hierarquia de herança

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

Namespace:  Microsoft.VisualStudio.Modeling.Diagrams
Assembly:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 (em Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0.dll)

Sintaxe

'Declaração
Public Class TextField _
    Inherits ShapeField
public class TextField : ShapeField

O tipo TextField expõe os membros a seguir.

Construtores

  Nome Descrição
Método público TextField Inicializa uma nova instância da classe TextField.

Superior

Propriedades

  Nome Descrição
Propriedade pública AnchoringBehavior Descreve como o conteúdo do campo deve posicionar e dimensionar a mesmo em relação ao pai ShapeElement. (Herdado de ShapeField.)
Propriedade pública DefaultAccessibleDescription Obtém ou define a descrição acessível do padrão. (Herdado de ShapeField.)
Propriedade pública DefaultAccessibleName Obtém ou define o nome padrão do campo forma para o objeto acessível. (Herdado de ShapeField.)
Propriedade pública DefaultAccessibleState Obtém o estado padrão do campo forma para o objeto acessível. (Herdado de ShapeField.)
Propriedade pública DefaultAutoSize Se true, informou o mínimo do campo de texto tamanho crescerá para acomodar o comprimento do texto diplay.Os campos de texto Autosizable ainda respeitará o tamanho mínimo especificado no AnchoringBehavior.
Propriedade pública DefaultBackgroundBrushId Obtém ou define a identificação do pincel padrão para pintar o plano de fundo do campo de forma. (Herdado de ShapeField.)
Propriedade pública DefaultCommitOnEscape Obtém ou define um valor indicando se a tecla Escape confirma a edição.Se for true, será usada como um CRLF a tecla Enter para edição in-loco.
Propriedade pública DefaultFocusable Obtém o campo de forma e verifica se ele pode receber o foco ou permite que o campo de forma receber o foco. (Herdado de ShapeField.)
Propriedade pública DefaultFontId Obtém ou define a identificação de fonte padrão.
Propriedade pública DefaultInactiveSelectedBackgroundBrushId Obtém ou define a identificação do pincel de plano de fundo padrão para o campo de forma. (Herdado de ShapeField.)
Propriedade pública DefaultInactiveSelectedTextBrushId Obtém ou define a identificação do pincel de padrão para o texto selecionado inativo.
Propriedade pública DefaultIsHorizontal Obtém ou define o estado de horizontal padrão para o texto.
Propriedade pública DefaultMultipleLine Se verdadeiro, o texto é quebrado automaticamente através de mais de uma linha para caber na largura disponível.
Propriedade pública DefaultPenId Obtém ou define a identificação da caneta padrão a ser usado para o campo de forma. (Herdado de ShapeField.)
Propriedade pública DefaultReflectParentFocusedState Obtém o filho campo de forma e verifica se ele deve receber o foco quando a forma pai é focalizado ou define a capacidade para refletir o estado de foco da forma pai. (Herdado de ShapeField.)
Propriedade pública DefaultReflectParentSelectedState Obtém o filho campo de forma e verifica se ele deve ser selecionado quando forma pai é selecionada ou define a capacidade para refletir o estado de seleção da forma pai. (Herdado de ShapeField.)
Propriedade pública DefaultSelectable Obtém o campo de forma e verifica se ele pode ser selecionado por padrão ou define o estado de seleção do campo de forma padrão. (Herdado de ShapeField.)
Propriedade pública DefaultSelectedBackgroundBrushId Obtém ou define a identificação do pincel de plano de fundo padrão para o campo de forma. (Herdado de ShapeField.)
Propriedade pública DefaultSelectedTextBrushId Obtém ou define a identificação do pincel de padrão para o texto selecionado.
Propriedade pública DefaultStringFormat Obtém ou define o formato de seqüência de caracteres padrão para texto de desenho.
Propriedade pública DefaultText Obtém ou define o texto padrão para desenhar.
Propriedade pública DefaultTextBrushId Obtém ou define a identificação do pincel de padrão para o texto.
Propriedade pública DefaultVisibility Obtém o campo de forma e verifica se ele é exibido por padrão ou define a visibilidade padrão do campo de forma. (Herdado de ShapeField.)
Propriedade pública DisplayMember Obtém ou define o nome da propriedade que o texto de exibição está associado.
Propriedade pública DrawBorder (Não use - será alterado)
Propriedade pública FillBackground (Não use - será alterado)
Propriedade pública Name Obtém o nome do campo de forma. (Herdado de ShapeField.)

Superior

Métodos

  Nome Descrição
Método público AccessibleDoDefaultAction Executa a ação padrão para o objeto acessível. (Herdado de ShapeField.)
Método público AllowInPlaceEditorAutoSize Por padrão, permite editor in-loco para o tamanho automaticamente, se o campo aceitará dimens. (Substitui ShapeField.AllowInPlaceEditorAutoSize(ShapeElement).)
Método público AssociateValueWith(Store, AssociatedPropertyInfo) Associa o campo de forma uma propriedade de domínio atribuído a um elemento de forma. (Herdado de ShapeField.)
Método público AssociateValueWith(Store, Guid) Associa o campo de forma uma propriedade de domínio atribuído a um elemento de forma. (Herdado de ShapeField.)
Método público AssociateValueWith(Store, Guid, AssociatedPropertyInfo) Associa o campo de forma uma propriedade de domínio atribuído a um elemento de forma. (Herdado de ShapeField.)
Método público AssociateVisibilityWith(Store, AssociatedPropertyInfo) Associa a visibilidade do campo de forma uma propriedade de domínio atribuído a um elemento de forma. (Herdado de ShapeField.)
Método público AssociateVisibilityWith(Store, Guid) Associa a visibilidade do campo de forma uma propriedade de domínio atribuído a um elemento de forma. (Herdado de ShapeField.)
Método público AssociateVisibilityWith(Store, Guid, AssociatedPropertyInfo) Associa a visibilidade do campo de forma uma propriedade de domínio atribuído a um elemento de forma. (Herdado de ShapeField.)
Método público CanEditValue Retorna um valor que indica se o valor deste campo pode ser editado. (Substitui ShapeField.CanEditValue(ShapeElement, DiagramClientView).)
Método público CommitPendingEdit Confirma a edição pendente. (Substitui ShapeField.CommitPendingEdit(ShapeElement, DiagramClientView).)
Método público DoHitTest Executa um teste de ocorrência em um ponto especificado no diagrama para determinar se o ponto está em um dos limites do campo de forma. (Herdado de ShapeField.)
Método público DoKeyboardNavigation Navega no campo forma usando o teclado. (Herdado de ShapeField.)
Método público DoPaint Desenha o campo de texto. (Substitui ShapeField.DoPaint(DiagramPaintEventArgs, ShapeElement).)
Método público EditValue(ShapeElement, DiagramClientView) Chama o editor in-loco. (Substitui ShapeField.EditValue(ShapeElement, DiagramClientView).)
Método público EditValue(ShapeElement, DiagramClientView, PointD) Chama o editor in-loco, definindo o sinal de interpolação usando a posição do mouse especificada. (Substitui ShapeField.EditValue(ShapeElement, DiagramClientView, PointD).)
Método público EditValue(ShapeElement, DiagramClientView, String) Chama o editor in-loco, substituindo o texto com o texto especificado.
Método público Equals Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método protegido Finalize Permite que um objeto tentar liberar recursos e realizar outras operações de limpeza antes de ser recuperados pela coleta de lixo. (Herdado de Object.)
Método público FindFirstChild Localiza o primeiro campo de forma filho no campo forma pai. (Herdado de ShapeField.)
Método público FindLastChild Localiza o último campo de forma filho no campo forma pai. (Herdado de ShapeField.)
Método público FindNextChild Localiza o próximo campo de forma filho no campo forma pai. (Herdado de ShapeField.)
Método público FindNextInChildSubFields Localiza o próximo campo de forma filho na seqüência de navegação. (Herdado de ShapeField.)
Método público FindPreviousChild Localiza o campo de forma filho anterior no campo forma pai. (Herdado de ShapeField.)
Método público FindPreviousInChildSubFields Localiza o campo de forma filho anterior na seqüência de navegação. (Herdado de ShapeField.)
Método público Focused Obtém o campo de forma e verifica se ele tem o foco. (Herdado de ShapeField.)
Método público GetAccessibilityObject Obtém o objeto de acessibilidade que é atribuído ao campo de forma. (Herdado de ShapeField.)
Método público GetAccessibleChild Obtém o objeto de acessibilidade para o campo de forma filho. (Herdado de ShapeField.)
Método público GetAccessibleChildCount Obtém o número de objetos de acessibilidade que são atribuídos para o campo de forma pai e seus campos de forma filho. (Herdado de ShapeField.)
Método público GetAccessibleDefaultActionDescription Obtém a finalidade padrão do campo forma para o objeto acessível. (Herdado de ShapeField.)
Método público GetAccessibleDescription Retorna a descrição acessível do padrão para um campo de texto. (Substitui ShapeField.GetAccessibleDescription(ShapeElement).)
Método público GetAccessibleHelp Obtém o campo da forma ajuda para o objeto acessível. (Herdado de ShapeField.)
Método público GetAccessibleHelpTopicFileName Obtém um tópico da Ajuda para o objeto acessível. (Herdado de ShapeField.)
Método público GetAccessibleHelpTopicId Obtém a ID que é atribuída ao tópico da Ajuda para o objeto acessível. (Herdado de ShapeField.)
Método público GetAccessibleName Retorna o texto exibido como o nome acessível. (Substitui ShapeField.GetAccessibleName(ShapeElement).)
Método público GetAccessibleRole Recupera a função acessível desta ShapeField. (Substitui ShapeField.GetAccessibleRole(ShapeElement).)
Método público GetAccessibleState Recupera o estado acessível neste campo de texto.Por padrão, o campo de texto é invisível para clientes de acessibilidade, se o campo não for Focusable é e não há nenhum texto a ser exibido. (Substitui ShapeField.GetAccessibleState(ShapeElement, DiagramClientView).)
Método público GetAccessibleValue Retorna o valor acessível. (Substitui ShapeField.GetAccessibleValue(ShapeElement).)
Método público GetActiveInPlaceEditor Retorna o controle para o editor do ativo no local.Esse método pode retornar null, caso em que nenhum editor no local é ativo para este campo. (Substitui ShapeField.GetActiveInPlaceEditor(ShapeElement, DiagramClientView).)
Método público GetAutoSize Se verdadeiro, tamanho mínimo do campo de texto aumentará para acomodar o comprimento do texto diplay.Os campos de texto Autosizable ainda respeitará o tamanho mínimo especificado no AnchoringBehavior.
Método público GetBackgroundBrush Obtém o pincel que desenha o plano de fundo do elemento de forma a que este campo de forma é atribuído. (Herdado de ShapeField.)
Método público GetBackgroundBrushId Obtém a ID do pincel que desenha o plano de fundo do elemento de forma a que este campo de forma é atribuído. (Herdado de ShapeField.)
Método público GetBounds Obtém os limites para o campo de forma. (Herdado de ShapeField.)
Método público GetCursor Obtém o ponteiro que aparece quando o mouse está apontando para o campo de forma. (Herdado de ShapeField.)
Método público GetDisplayText Obtém o texto a ser exibido por este campo.
Método público GetFocusable Obtém o campo de forma e verifica se ele pode receber o foco. (Herdado de ShapeField.)
Método público GetFont Obtém a fonte para desenhar com para a ocorrência de ShapeElement especificada.
Método público GetFontHeight Obtém o espaçamento de linha da fonte (ou seja, a altura de uma linha de texto) em unidades do mundo.Espaçamento de linha é o ascent + as profundezas + recomendados extra.O ascent é a altura do caractere acima da linha de base e as profundezas é a altura do caractere abaixo da linha de base.O extra está abaixo do descendente.
Método público GetFontId Obtém a id da fonte para desenhar com para a ocorrência de ShapeElement especificada.
Método público GetHashCode Serve como uma função de hash para um tipo específico. (Herdado de Object.)
Método público GetInPlaceEditorBounds Obtém os limites para o editor in-loco. (Herdado de ShapeField.)
Método público GetMaximumInPlaceEditorSize Por padrão, permitimos que o controle de edição in loco redimensionar a até 75 caracteres. (Substitui ShapeField.GetMaximumInPlaceEditorSize(ShapeElement).)
Método público GetMinimumInPlaceEditorSize Tamanho mínimo editor de in loco baseia-se na largura mínima em caracteres e a altura em linhas. (Substitui ShapeField.GetMinimumInPlaceEditorSize(ShapeElement).)
Método público GetMinimumSize Obtém a largura mínima e o heightfor este ShapeField em unidades do mundo (Substitui ShapeField.GetMinimumSize(ShapeElement).)
Método público GetMultipleLine Se verdadeiro, o texto pode dispor em mais de uma linha para caber na largura disponível.
Método público GetPen Obtém a caneta que desenha o elemento de forma a que o campo de forma é atribuído. (Herdado de ShapeField.)
Método público GetPenId Obtém a ID da caneta que desenha o elemento de forma a que o campo de forma é atribuído. (Herdado de ShapeField.)
Método público GetPotentialMouseAction Obtém a ação mouse para ativar quando o usuário clica em seguida um ponto específico no diagrama. (Herdado de ShapeField.)
Método público GetSelectable Obtém o campo de forma e verifica se ele pode ser selecionado. (Herdado de ShapeField.)
Método público GetStringFormat Obtém o formato de seqüência de caracteres para desenhar o texto com a instância especificada do ShapeElement.
Método público GetTextBrush Obtém o pincel para desenhar o texto com a instância especificada do ShapeElement.
Método público GetTextBrushId Obtém a id do pincel para desenhar o texto com a instância especificada do ShapeElement.
Método público GetType Obtém Type da instância atual. (Herdado de Object.)
Método público GetValue Obtém o valor para este campo de texto. (Substitui ShapeField.GetValue(ShapeElement).)
Método público GetValueDomainPropertyInfo Obtém a propriedade de domínio que é atribuída o valor no campo forma. (Herdado de ShapeField.)
Método público GetVisible Obtém o campo de forma e verifica se ele aparece. (Herdado de ShapeField.)
Método público HasFocusedAppearance Obtém o campo de forma e verifica se ela parece ter o foco. (Herdado de ShapeField.)
Método público HasPendingEdit Retorna um valor que indica se a edição in-loco está ativo, com uma confirmação pendente. (Substitui ShapeField.HasPendingEdit(ShapeElement, DiagramClientView).)
Método público HasSelectedAppearance Obtém o campo de forma e verifica se ele parece estar selecionada. (Herdado de ShapeField.)
Método público IsNavigationKey(Char) Obtém a chave que o usuário pressionou e verifica se ele pode ser usado para navegar entre os campos de forma. (Herdado de ShapeField.)
Método público IsNavigationKey(Keys) Obtém as chaves que o usuário pressionou e verifica se eles podem ser usados para navegar entre os campos de forma. (Herdado de ShapeField.)
Método protegido MeasureDisplayText O método auxiliar para medir dado texto.
Método protegido MemberwiseClone Cria uma cópia superficial de Objectatual. (Herdado de Object.)
Método público NavigateAscend Move o foco para o campo de forma anterior na seqüência de navegação para as formas selecionadas. (Herdado de ShapeField.)
Método público NavigateDescend Move o foco para o próximo campo de forma na seqüência de navegação para as formas selecionadas. (Herdado de ShapeField.)
Método público NavigateToFirst Move o foco para o primeiro campo de forma na seqüência de navegação para as formas selecionadas. (Herdado de ShapeField.)
Método público NavigateToLast Move o foco para o último campo da forma na seqüência de navegação para as formas selecionadas. (Herdado de ShapeField.)
Método público NavigateToNext Move o foco para o próximo campo de forma na seqüência de navegação para as formas selecionadas. (Herdado de ShapeField.)
Método público NavigateToPrevious Move o foco para o campo de forma anterior na seqüência de navegação para as formas selecionadas. (Herdado de ShapeField.)
Método protegido OnBeginEdit Ouvintes de alertas quando começou a edição in-loco. (Herdado de ShapeField.)
Método público OnClick Ouvintes de alertas quando o usuário clicou em um campo de forma. (Herdado de ShapeField.)
Método público OnDoubleClick Invoca a edição no local por padrão. (Substitui ShapeField.OnDoubleClick(DiagramPointEventArgs).)
Método protegido OnEndEdit Ouvintes de alertas quando concluiu a edição in-loco. (Herdado de ShapeField.)
Método público OnKeyDown Ouvintes de alertas quando o usuário tem mantida pressionada uma tecla quando apontando para um campo de forma. (Herdado de ShapeField.)
Método público OnKeyPress Chama o editor se o campo é editável e qualquer caractere alfa-numérico é digitado. (Substitui ShapeField.OnKeyPress(DiagramKeyPressEventArgs).)
Método público OnKeyUp Ouvintes de alertas quando o usuário lançou uma chave quando apontando para um campo de forma. (Herdado de ShapeField.)
Método público OnMouseDown Ouvintes de alertas quando o usuário está mantendo o botão do mouse pressionado sobre um campo de forma. (Herdado de ShapeField.)
Método público OnMouseMove Ouvintes de alertas quando o mouse foi movido sobre um campo de forma. (Herdado de ShapeField.)
Método público OnMouseUp Ouvintes de alertas quando o usuário que lançou o botão do mouse sobre um campo de forma. (Herdado de ShapeField.)
Método público OnMouseWheel Ouvintes de alertas quando o mouse sobre um campo de forma foi girado. (Herdado de ShapeField.)
Método público Selected Obtém o campo de forma e verifica se ele está selecionado. (Herdado de ShapeField.)
Método público SetSelectionRange Define a seleção a um intervalo de campos de forma filho. (Herdado de ShapeField.)
Método público SetValue Atribui o valor especificado para um campo de forma. (Herdado de ShapeField.)
Método público SetVisible Define a visibilidade do campo de forma. (Herdado de ShapeField.)
Método público ToString Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object.)

Superior

Comentários

Quando você define um decorador de texto em uma forma, ele é representado por um campo de texto.Para obter exemplos da inicialização do campos de texto e outros ShapeFields, inspecione Dsl\GeneratedCode\Shapes.cs em sua solução DSL.

Um campo de texto é um objeto que gerencia uma área dentro de uma forma, como, por exemplo, o espaço atribuído a um rótulo.Uma ocorrência TextField é compartilhada entre várias formas da mesma classe.A ocorrência de TextField não armazena o texto do rótulo separadamente para cada instância: em vez disso, o GetDisplayText(ShapeElement) método assume a forma como um parâmetro e pode pesquisar o texto dependente do estado atual da forma e seu elemento de modelo.

Como a aparência de um campo de texto é determinada

O padrão DoPaint() método executa essas tarefas.Esta é uma apresentação simplificada do seu 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; }

Existem vários outros pares de Get métodos e Default propriedades, como DefaultMultipleLine/GetMultipleLine().Você pode atribuir um valor para a propriedade padrão para alterar o valor para todas as instâncias do campo de forma.Para fazer com que o valor variam de instância de uma forma para outra ou dependente do estado da forma ou o seu elemento de modelo, substituir o Get método.

Personalizações estáticas

Se você desejar alterar cada ocorrência de campo desta forma, primeiro, descubra se você pode definir a propriedade na definição de DSL.Por exemplo, você pode definir o tamanho da fonte e estilo na janela Propriedades.

Se não, em seguida, substituir o InitializeShapeFields o método de classe shape e atribuir um valor para o apropriado Default... a propriedade do campo de texto.

Observação de cuidadoCuidado

Para substituir InitializeShapeFields(), você deve definir o Gera Double derivado a propriedade da classe shape para true na definição de DSL.

Neste exemplo, uma forma possui um campo de texto que será usado para comentários do usuário.Queremos usar a fonte padrão do comentário.Porque é uma fonte padrão do conjunto de estilo, podemos definir o padrão de identificação de fonte:

 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;

Personalizações dinâmicas

Para tornar a aparência variar dependente do estado de uma forma ou o seu elemento de modelo, derivam sua própria subclasse de TextField e substituir um ou mais Get... métodos.Você também deve substituir o método de InitializeShapeFields da sua forma e substituir a ocorrência do campo de texto com uma instância de sua própria classe.

O exemplo a seguir faz com que a fonte de um campo texto dependente do estado de uma propriedade Boolean de domínio de elemento de modelo da forma.

Para executar este código de exemplo, crie uma nova solução DSL, usando o modelo de idioma mínima.Adicionar uma propriedade Boolean domínio AlternateState para a classe ExampleElement do domínio.Adicione um decorador de ícone para a classe ExampleShape e defina sua imagem como um arquivo de bitmap.Clique em transformar todos os modelos de.Adicionar um novo arquivo de código no projeto DSL e insira o código a seguir.

Para testar o código, pressione F5 e, na solução de depuração, abrir um diagrama de exemplo.O estado padrão do ícone deve aparecer.Selecione a forma e na janela Properties, altere o valor da AlternateState propriedade.A fonte do nome do elemento deve ser alterada.

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 estilos

O exemplo anterior mostra como você pode alterar o campo de texto para qualquer fonte que está disponível.No entanto, um método preferível é alterar para um de um conjunto de estilos que está associado com a forma ou com o aplicativo.Para fazer isso, você substituir GetFontId ou GetTextBrushId().

Como alternativa, considere alterar o conjunto de estilos da forma, substituindo InitializeResources.Isso tem o efeito de alterar as fontes e os pincéis para todos os campos de forma.

Acesso thread-safe

Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Namespace Microsoft.VisualStudio.Modeling.Diagrams

InitializeShapeFields

StyleSet

ShapeField