Sdílet prostřednictvím


TextField – třída

Lehký objekt, který představuje část obrazce, které lze zobrazit textové popisky nebo oblastí.

Hierarchie dědičnosti

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

Obor názvů:  Microsoft.VisualStudio.Modeling.Diagrams
Sestavení:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 (v Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0.dll)

Syntaxe

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

Typ TextField zveřejňuje následující členy.

Konstruktory

  Název Popis
Veřejná metoda TextField Inicializuje novou instanci třídy TextField.

Nahoru

Vlastnosti

  Název Popis
Veřejná vlastnost AnchoringBehavior Popisuje, jak by obsah pole umístění a velikost samotného v nadřazené ShapeElement. (Zděděno z ShapeField.)
Veřejná vlastnost DefaultAccessibleDescription Získá nebo nastaví výchozí popis přístupné. (Zděděno z ShapeField.)
Veřejná vlastnost DefaultAccessibleName Získá nebo nastaví výchozí název pole obrazce pro přístupný objekt. (Zděděno z ShapeField.)
Veřejná vlastnost DefaultAccessibleState Načte výchozí stav pole obrazce pro přístupný objekt. (Zděděno z ShapeField.)
Veřejná vlastnost DefaultAutoSize Pokud PRAVDA, textové pole minimální velikost narůstat tak, aby odpovídal délce textu diplay.Autosizable textové pole stále respektuje minimální velikost AnchoringBehavior.
Veřejná vlastnost DefaultBackgroundBrushId Získá nebo nastaví ID výchozí štětec k malování na pozadí pole obrazce. (Zděděno z ShapeField.)
Veřejná vlastnost DefaultCommitOnEscape Získá nebo nastaví hodnotu označující, zda klávesy Escape potvrdí úpravy.Pokud je hodnota true, klávesa Enter používá jako znak CRLF pro úpravy na místě.
Veřejná vlastnost DefaultFocusable Načte pole obrazce a ověří, zda lze aktivovat nebo umožňuje pole obrazec vybrán. (Zděděno z ShapeField.)
Veřejná vlastnost DefaultFontId Získá nebo nastaví výchozí písmo id.
Veřejná vlastnost DefaultInactiveSelectedBackgroundBrushId Získá nebo nastaví ID stopy výchozího pozadí pro pole obrazce. (Zděděno z ShapeField.)
Veřejná vlastnost DefaultInactiveSelectedTextBrushId Získá nebo nastaví výchozí id stopy pro neaktivní vybraného textu.
Veřejná vlastnost DefaultIsHorizontal Získá nebo nastaví výchozí stav vodorovný text.
Veřejná vlastnost DefaultMultipleLine Pokud je hodnota true, se text zalamoval automaticky přes více než jeden řádek, aby se vešel do šířky, které jsou k dispozici.
Veřejná vlastnost DefaultPenId Získá nebo nastaví ID pera výchozí tvar pole. (Zděděno z ShapeField.)
Veřejná vlastnost DefaultReflectParentFocusedState Získá podřízené obrazce pole a ověří, zda ji měli aktivovat při jeho nadřazený obrazec vybrán nebo nastaví schopnost odrážet stav zaměření jeho nadřazeného obrazce. (Zděděno z ShapeField.)
Veřejná vlastnost DefaultReflectParentSelectedState Získá podřízené obrazce pole a ověří, zda ji musí být vybrána při jeho nadřazeného obrazce výběru nebo nastaví schopnost odrážet stavu výběru jeho nadřazeného obrazce. (Zděděno z ShapeField.)
Veřejná vlastnost DefaultSelectable Získá pole obrazce a ověří, zda lze vybrat výchozí nebo nastaví výchozí stav výběru pole obrazce. (Zděděno z ShapeField.)
Veřejná vlastnost DefaultSelectedBackgroundBrushId Získá nebo nastaví ID stopy výchozího pozadí pro pole obrazce. (Zděděno z ShapeField.)
Veřejná vlastnost DefaultSelectedTextBrushId Získá nebo nastaví výchozí id stopy pro vybraný text.
Veřejná vlastnost DefaultStringFormat Získá nebo nastaví výchozí formát řetězce textu výkresu.
Veřejná vlastnost DefaultText Získá nebo nastaví výchozí text kreslení.
Veřejná vlastnost DefaultTextBrushId Získá nebo nastaví výchozí id stopy pro text.
Veřejná vlastnost DefaultVisibility Načte pole obrazce a ověří, zda se standardně zobrazí nebo nastaví výchozí viditelnost pole obrazce. (Zděděno z ShapeField.)
Veřejná vlastnost DisplayMember Získá nebo nastaví název vlastnosti, spojenou s zobrazeného textu.
Veřejná vlastnost DrawBorder (Nepoužívejte - bude změněno)
Veřejná vlastnost FillBackground (Nepoužívejte - bude změněno)
Veřejná vlastnost Name Získá název pole obrazce. (Zděděno z ShapeField.)

Nahoru

Metody

  Název Popis
Veřejná metoda AccessibleDoDefaultAction Provede výchozí akce pro přístupný objekt. (Zděděno z ShapeField.)
Veřejná metoda AllowInPlaceEditorAutoSize Standardně povolit automaticky přímo v editoru na velikost, pokud pole podporuje automatickou velikost. (Přepisuje ShapeField.AllowInPlaceEditorAutoSize(ShapeElement).)
Veřejná metoda AssociateValueWith(Store, AssociatedPropertyInfo) Vlastnost domény přiřazené k prvku tvar přidruží pole obrazce. (Zděděno z ShapeField.)
Veřejná metoda AssociateValueWith(Store, Guid) Vlastnost domény přiřazené k prvku tvar přidruží pole obrazce. (Zděděno z ShapeField.)
Veřejná metoda AssociateValueWith(Store, Guid, AssociatedPropertyInfo) Vlastnost domény přiřazené k prvku tvar přidruží pole obrazce. (Zděděno z ShapeField.)
Veřejná metoda AssociateVisibilityWith(Store, AssociatedPropertyInfo) Vlastnost domény přiřazené k prvku tvar přidruží viditelnost pole obrazce. (Zděděno z ShapeField.)
Veřejná metoda AssociateVisibilityWith(Store, Guid) Vlastnost domény přiřazené k prvku tvar přidruží viditelnost pole obrazce. (Zděděno z ShapeField.)
Veřejná metoda AssociateVisibilityWith(Store, Guid, AssociatedPropertyInfo) Vlastnost domény přiřazené k prvku tvar přidruží viditelnost pole obrazce. (Zděděno z ShapeField.)
Veřejná metoda CanEditValue Vrátí hodnotu určující, zda lze upravit hodnotu tohoto pole. (Přepisuje ShapeField.CanEditValue(ShapeElement, DiagramClientView).)
Veřejná metoda CommitPendingEdit Úpravy čeká na potvrzení. (Přepisuje ShapeField.CommitPendingEdit(ShapeElement, DiagramClientView).)
Veřejná metoda DoHitTest Zadaný bod v diagramu zjistit, zda je v poli obrazec hranice provádí test zásahu. (Zděděno z ShapeField.)
Veřejná metoda DoKeyboardNavigation Přejde do pole obrazec pomocí klávesnice. (Zděděno z ShapeField.)
Veřejná metoda DoPaint Nakreslí textové pole. (Přepisuje ShapeField.DoPaint(DiagramPaintEventArgs, ShapeElement).)
Veřejná metoda EditValue(ShapeElement, DiagramClientView) Spustí editor v místě. (Přepisuje ShapeField.EditValue(ShapeElement, DiagramClientView).)
Veřejná metoda EditValue(ShapeElement, DiagramClientView, PointD) Spustí editor v místě, nastavení polohy myši zadané pomocí znaku stříšky. (Přepisuje ShapeField.EditValue(ShapeElement, DiagramClientView, PointD).)
Veřejná metoda EditValue(ShapeElement, DiagramClientView, String) Spustí editor v místě, nahraďte text zadaný text.
Veřejná metoda Equals Určuje, zda zadaný objekt je rovno aktuální objekt. (Zděděno z Object.)
Chráněná metoda Finalize Umožňuje objekt při uvolnění prostředků a provádět jiné operace vyčištění, dříve, než je zažádáno systémem uvolňování paměti. (Zděděno z Object.)
Veřejná metoda FindFirstChild Do pole nadřazený obrazec vyhledá první pole podřízený obrazec. (Zděděno z ShapeField.)
Veřejná metoda FindLastChild Do pole nadřazený obrazec vyhledá pole poslední podřízené obrazce. (Zděděno z ShapeField.)
Veřejná metoda FindNextChild Vyhledá další podřízené obrazce pole do pole nadřazený obrazec. (Zděděno z ShapeField.)
Veřejná metoda FindNextInChildSubFields Vyhledá pole další podřízené obrazce v pořadí navigace. (Zděděno z ShapeField.)
Veřejná metoda FindPreviousChild Do pole nadřazený obrazec vyhledá předchozí pole podřízený obrazec. (Zděděno z ShapeField.)
Veřejná metoda FindPreviousInChildSubFields Vyhledá předchozí pole podřízené obrazce v pořadí navigace. (Zděděno z ShapeField.)
Veřejná metoda Focused Načte pole obrazce a ověří, zda má fokus. (Zděděno z ShapeField.)
Veřejná metoda GetAccessibilityObject Získá usnadnění objekt, který je přiřazen do pole obrazce. (Zděděno z ShapeField.)
Veřejná metoda GetAccessibleChild Získá objekt usnadnění pro pole podřízené obrazce. (Zděděno z ShapeField.)
Veřejná metoda GetAccessibleChildCount Počet objektů usnadnění, které jsou přiřazeny obrazce nadřízeného pole a pole jeho podřízené obrazce získá. (Zděděno z ShapeField.)
Veřejná metoda GetAccessibleDefaultActionDescription Načte výchozí účel pole obrazce pro přístupný objekt. (Zděděno z ShapeField.)
Veřejná metoda GetAccessibleDescription Vrací výchozí popis přístupné pro textové pole. (Přepisuje ShapeField.GetAccessibleDescription(ShapeElement).)
Veřejná metoda GetAccessibleHelp Získá tvar pole Nápověda pro přístupný objekt. (Zděděno z ShapeField.)
Veřejná metoda GetAccessibleHelpTopicFileName Získá téma v nápovědě pro přístupný objekt. (Zděděno z ShapeField.)
Veřejná metoda GetAccessibleHelpTopicId Načte ID, který je přiřazen k tématu nápovědy pro přístupný objekt. (Zděděno z ShapeField.)
Veřejná metoda GetAccessibleName Vrátí text zobrazovaný jako název s usnadněním. (Přepisuje ShapeField.GetAccessibleName(ShapeElement).)
Veřejná metoda GetAccessibleRole Načte přístupné role tohoto ShapeField. (Přepisuje ShapeField.GetAccessibleRole(ShapeElement).)
Veřejná metoda GetAccessibleState Načte přístupný stav této TextField.Ve výchozím nastavení je TextField Pokud pole není může získat fokus a není žádný text zobrazit neviditelné klientům usnadnění. (Přepisuje ShapeField.GetAccessibleState(ShapeElement, DiagramClientView).)
Veřejná metoda GetAccessibleValue Vrátí hodnotu přístupné. (Přepisuje ShapeField.GetAccessibleValue(ShapeElement).)
Veřejná metoda GetActiveInPlaceEditor Vrátí ovládacího prvku active editor v místě.Tato metoda může vrátit hodnotu null, v takovém případě je žádný editor v místě aktivní pro toto pole. (Přepisuje ShapeField.GetActiveInPlaceEditor(ShapeElement, DiagramClientView).)
Veřejná metoda GetAutoSize Pokud je PRAVDA, minimální požadovaná velikost textového pole narůstat tak, aby odpovídal délce textu diplay.Autosizable textové pole stále respektuje minimální velikost AnchoringBehavior.
Veřejná metoda GetBackgroundBrush Stopy, které nakreslí pozadí tvar prvku tohoto pole tvar přiřazenou získá. (Zděděno z ShapeField.)
Veřejná metoda GetBackgroundBrushId Načte ID stopy, které nakreslí pozadí tvar prvku tohoto pole tvar přiřazenou. (Zděděno z ShapeField.)
Veřejná metoda GetBounds Získá hranice pro pole obrazce. (Zděděno z ShapeField.)
Veřejná metoda GetCursor Získá ukazatel, který se zobrazí v případě, že pole obrazec umístěn ukazatel myši. (Zděděno z ShapeField.)
Veřejná metoda GetDisplayText Získá text, který se zobrazí v tomto poli.
Veřejná metoda GetFocusable Načte pole obrazce a ověří, zda ji lze aktivovat. (Zděděno z ShapeField.)
Veřejná metoda GetFont Získá písma s kreslení určené instance ShapeElement.
Veřejná metoda GetFontHeight Řádkování tohoto písma (tj. výška řádku textu) získává ve světě jednotek.Řádkování je stoupání + klesání + některé doporučené extra.Horní dotažnice je výška znaků nad účaří a sestup je výška znaku pod účaří.Výběr je níže sestup.
Veřejná metoda GetFontId Načte id písma s kreslení určené instance ShapeElement.
Veřejná metoda GetHashCode Slouží jako funkci hash u určitého typu. (Zděděno z Object.)
Veřejná metoda GetInPlaceEditorBounds Získá hranice pro editor v místě. (Zděděno z ShapeField.)
Veřejná metoda GetMaximumInPlaceEditorSize Standardně jsme umožňují změnit velikost až 75 znaků ovládacího prvku pro úpravy v místě. (Přepisuje ShapeField.GetMaximumInPlaceEditorSize(ShapeElement).)
Veřejná metoda GetMinimumInPlaceEditorSize Minimální místo v editoru je založen na minimální šířka ve znacích a výšku řádků. (Přepisuje ShapeField.GetMinimumInPlaceEditorSize(ShapeElement).)
Veřejná metoda GetMinimumSize Získá minimální šířku a heightfor této ShapeField v jednotkách světa (Přepisuje ShapeField.GetMinimumSize(ShapeElement).)
Veřejná metoda GetMultipleLine Hodnota true, lze text zalomit do šířky, která je k dispozici více než jeden řádek.
Veřejná metoda GetPen Získá pero kreslí tvar prvku pole obrazce přiřazenou. (Zděděno z ShapeField.)
Veřejná metoda GetPenId Načte ID pero kreslí tvar prvku pole obrazce přiřazenou. (Zděděno z ShapeField.)
Veřejná metoda GetPotentialMouseAction Získá akce myši aktivovat při dalším klepnutí určitý bod v diagramu. (Zděděno z ShapeField.)
Veřejná metoda GetSelectable Načte pole obrazce a ověří, zda může být vybrána. (Zděděno z ShapeField.)
Veřejná metoda GetStringFormat Načte řetězec formátu vykreslování textu s určené instance ShapeElement.
Veřejná metoda GetTextBrush Získá stopy vykreslování textu s určené instance ShapeElement.
Veřejná metoda GetTextBrushId Načte id stopy vykreslování textu s určené instance ShapeElement.
Veřejná metoda GetType Získá Type aktuální instance. (Zděděno z Object.)
Veřejná metoda GetValue Získá hodnota pro tento TextField. (Přepisuje ShapeField.GetValue(ShapeElement).)
Veřejná metoda GetValueDomainPropertyInfo Získá vlastnosti domény, která je přiřazena hodnota v poli tvar. (Zděděno z ShapeField.)
Veřejná metoda GetVisible Načte pole obrazce a ověří, zda se zobrazí. (Zděděno z ShapeField.)
Veřejná metoda HasFocusedAppearance Načte pole obrazce a ověří, zda by se fokus. (Zděděno z ShapeField.)
Veřejná metoda HasPendingEdit Vrátí hodnotu určující, zda je aktivní, potvrzení čekající úpravy na místě. (Přepisuje ShapeField.HasPendingEdit(ShapeElement, DiagramClientView).)
Veřejná metoda HasSelectedAppearance Načte pole obrazce a ověří, zda se zdá být vybrán. (Zděděno z ShapeField.)
Veřejná metoda IsNavigationKey(Char) Získá klíč, který uživatel stisknutí a ověří, zda jej lze procházet mezi obrazci. (Zděděno z ShapeField.)
Veřejná metoda IsNavigationKey(Keys) Získá klíčů, které uživatel stisknutí a ověří, zda jsou lze procházet mezi obrazci. (Zděděno z ShapeField.)
Chráněná metoda MeasureDisplayText Pomocné metody měření uveden text.
Chráněná metoda MemberwiseClone Vytvoří kopii aktuálního Object. (Zděděno z Object.)
Veřejná metoda NavigateAscend Přejde na předchozí pole tvaru v pořadí navigace pro vybrané obrazce. (Zděděno z ShapeField.)
Veřejná metoda NavigateDescend Přejde na další pole tvaru v pořadí navigace pro vybrané obrazce. (Zděděno z ShapeField.)
Veřejná metoda NavigateToFirst Přejde na první pole tvaru v pořadí navigace pro vybrané obrazce. (Zděděno z ShapeField.)
Veřejná metoda NavigateToLast Přejde na poslední pole obrazce v pořadí navigace pro vybrané obrazce. (Zděděno z ShapeField.)
Veřejná metoda NavigateToNext Přejde na další pole tvaru v pořadí navigace pro vybrané obrazce. (Zděděno z ShapeField.)
Veřejná metoda NavigateToPrevious Přejde na předchozí pole tvaru v pořadí navigace pro vybrané obrazce. (Zděděno z ShapeField.)
Chráněná metoda OnBeginEdit Upozornění posluchače při zahájení úpravy na místě. (Zděděno z ShapeField.)
Veřejná metoda OnClick Když uživatel klepne tvar pole upozornění posluchače. (Zděděno z ShapeField.)
Veřejná metoda OnDoubleClick Vyvolá se ve výchozím nastavení úpravy na místě. (Přepisuje ShapeField.OnDoubleClick(DiagramPointEventArgs).)
Chráněná metoda OnEndEdit Po dokončení úpravy na místě oznámení posluchače. (Zděděno z ShapeField.)
Veřejná metoda OnKeyDown Když se uživatel rozhodl stisknutou klávesu, když přejdete pole obrazec výstrahy posluchače. (Zděděno z ShapeField.)
Veřejná metoda OnKeyPress Spustí editor je upravitelná pole a zadání libovolný alfanumerický znak. (Přepisuje ShapeField.OnKeyPress(DiagramKeyPressEventArgs).)
Veřejná metoda OnKeyUp Když uživatel vydala klíč, pokud zvolíte pole obrazec výstrahy posluchače. (Zděděno z ShapeField.)
Veřejná metoda OnMouseDown Upozornění posluchače při uživatele podržení myši nad pole obrazce. (Zděděno z ShapeField.)
Veřejná metoda OnMouseMove Když byl přesunut myši přes pole obrazec výstrahy posluchače. (Zděděno z ShapeField.)
Veřejná metoda OnMouseUp Když uživatel vydala tlačítko myši nad pole obrazec výstrahy posluchače. (Zděděno z ShapeField.)
Veřejná metoda OnMouseWheel Upozornění posluchače při otočený myši přes pole obrazce. (Zděděno z ShapeField.)
Veřejná metoda Selected Načte pole obrazce a ověří, zda je zaškrtnuto. (Zděděno z ShapeField.)
Veřejná metoda SetSelectionRange Nastaví rozsah pole podřízené obrazce na výběr. (Zděděno z ShapeField.)
Veřejná metoda SetValue Zadaná hodnota přiřadí pole obrazce. (Zděděno z ShapeField.)
Veřejná metoda SetVisible Nastaví viditelnost pole obrazce. (Zděděno z ShapeField.)
Veřejná metoda ToString Vrátí řetězec, který představuje aktuální objekt. (Zděděno z Object.)

Nahoru

Poznámky

Když definujete decorator textu v obrazci, je reprezentována komponentě TextField.Příklady inicializace TextFields a jiných ShapeFields inspekci Dsl\GeneratedCode\Shapes.cs v řešení DSL.

Komponentě TextField je objekt, který spravuje oblast uvnitř tvaru, například místo přiřazen popisek.Jedna instance TextField je sdílet mezi mnoha obrazcům stejné třídy.TextField instance text popisku odděleně pro každou instanci neukládá: místo, GetDisplayText(ShapeElement) , převezme tvar jako parametr metody a můžete vyhledat text, který je závislý na aktuální stav tvaru a jeho prvku modelu.

Jak se stanoví vzhled textového pole

Výchozí DoPaint() metoda provede následující úkoly.Toto je zjednodušenou obchodní úpravu kódu:

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

Existuje několik dvojic z Get metod a Default vlastnosti, jako například DefaultMultipleLine/GetMultipleLine().Můžete přiřadit hodnotu vlastnosti výchozí hodnotu pro všechny instance obrazce pole.Chcete-li hodnota liší instance jednoho obrazce do jiného nebo závislé na stavu jeho prvku modelu nebo obrazce, přepsat Get metoda.

Statické úprav

Chcete-li změnit každé instanci tohoto obrazce pole, nejprve zjistit, zda vlastnost lze nastavit v definici DSL.V okně Vlastnosti můžete například nastavit velikost písma a styl.

Pokud ne, pak přepsat InitializeShapeFields třídy shape a přiřadit hodnotu na příslušnou metodu Default... vlastnosti textového pole.

Poznámka k upozorněníUpozornění

Potlačit InitializeShapeFields(), je nutné nastavit Generuje dvojité odvozené vlastnost obrazce Třída true v definici DSL.

V tomto příkladu má tvar textového pole, které bude použita pro komentáře uživatelů.Chceme použít standardní komentář písmo.Je standardní písmo z sadu stylů, doporučujeme nastavit výchozí písmo id:

 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;

Dynamické úpravy

Chcete-li měnit vzhled závisí na stavu tvaru nebo jeho prvku modelu, odvodit vlastní podtřídu TextField a přepsat jeden nebo více Get... metod.Musíte přepsat metodu InitializeShapeFields daného obrazce a nahradit instanci třídy vlastní instance TextField.

Následující příklad vytvoří písmo textového pole závisí na stavu domény booleovská vlastnost obrazce prvku modelu.

Chcete-li spustit tento příklad kódu, vytvořte nové řešení DSL pomocí šablony minimální jazyk.Přidání domény booleovská vlastnost AlternateState ExampleElement třídy domény.Přidat decorator ikonu do třídy ExampleShape a nastavte jeho obraz na rastrový soubor.Klepněte na tlačítko transformace všechny šablony.Přidání nového souboru kód v projektu DSL a vložte následující kód.

Chcete-li otestovat kód stisknutím klávesy F5 a ladění řešení otevřete ukázkový diagram.Výchozí stav na ikonu se zobrazí.Vyberte obrazec a v okně Vlastnosti změňte hodnotu AlternateState vlastnost.Měla změnit písmo název prvku.

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

  }

Sady stylů

Předchozí příklad ukazuje, jak změnit pole text na jakékoli písmo, které je k dispozici.Vhodnější metodou je však změnit na jednu sadu stylů, která je spojena s obrazcem nebo s aplikací.To provedete přepsat GetFontId nebo GetTextBrushId().

Můžete také zvážit změnu nastavení stylu tvaru přepsáním InitializeResources.To má za následek změny písma a pro všechna pole tvar stopy.

Bezpečný přístup z více vláken

Všechny veřejné členy static (Shared v jazyce Visual Basic) tohoto typu jsou bezpečné pro přístup z více vláken. Není zaručeno, že členy instancí jsou bezpečné pro přístup z více vláken.

Viz také

Referenční dokumentace

Microsoft.VisualStudio.Modeling.Diagrams – obor názvů

InitializeShapeFields

StyleSet

ShapeField