Freigeben über


ShapeField.AnchoringBehavior-Eigenschaft

Beschreibt, wie der Inhalt des Felds und seine Größe selbst in Bezug auf das übergeordnete ShapeElement positioniert werden soll.

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

Syntax

'Declaration
Public ReadOnly Property AnchoringBehavior As AnchoringBehavior
public AnchoringBehavior AnchoringBehavior { get; }

Eigenschaftswert

Typ: Microsoft.VisualStudio.Modeling.Diagrams.AnchoringBehavior

Hinweise

Das AnchoringBehavior wird beschrieben, wie das ShapeField und seine Größe selbst in Bezug auf das übergeordnete ShapeElements und ein gleichgeordnetes Element positioniert werden soll.

Um das standardmäßige Verhalten ändern Verankern

  1. Legen Sie die Generiert abgeleitetes Double-Eigenschaft der Form Klasse in der DSL-Definition, und klicken Sie auf Alle Vorlagen transformierenfest.

  2. Überschreiben InitializeDecorators() in der Form Klasse.

    • Erstellen Sie eine Datei in DSL-Projekt, und fügen Sie eine partielle Klassendefinition für die Klasse Form hinzu.Fügen Sie die Methode in dieser Klasse ein.
  3. Rufen Sie die Methoden des SetAnchorAnchoringBehavior-Objekts an.

Beispiele

Standardmäßig nimmt ein Textfeld nur eine einzige Zeile.In diesem Beispiel definiert eine Form, in der der Benutzer Text eingeben kann, der „umschließt“ in mehreren Zeilen.Erstellt einen Wrapper für Um das Verhalten zu sehen, müssen wir die Seiten des Felds auf den Seiten der Form auch verankern.

WarnhinweisVorsicht

Dieser Code funktioniert mit einer DSL, das von der Vorlage erstellten Office-Projektmappen Sprachen minimalen.Fügen Sie ein Decorator-Element hinzu, das CommentDecoratorExampleShapeaufgerufen wird, und ordnen Sie es einer Zeichenfolgeneigenschaft in der Domänenklasse ExampleElement.Legen Sie die Generiert abgeleitetes Double-Eigenschaft für ExampleShape in der DSL-Definition fest, sodass die InitializeDecorators-Methode überschrieben werden kann.

  public partial class ExampleShape
  {
    // Called once for each shape instance, after InitializeShapeFields
    protected override void InitializeDecorators
      (IList<ShapeField> shapeFields, IList<Decorator> decorators)
    { // Be sure to call the base method.
      base.InitializeDecorators(shapeFields, decorators);
      // Look up the shape field, which is called "CommentDecorator":
      TextField commentField = (TextField)ShapeElement.FindShapeField(shapeFields, "CommentDecorator");
      TextField nameField = (TextField)ShapeElement.FindShapeField(shapeFields, "NameDecorator");
      // Allow multiple lines of text in the field.
      commentField.DefaultMultipleLine = true;
      // Autosize is not supported for multi-line   fields.
      commentField.DefaultAutoSize = false;
      // Anchor the field slightly inside the container shape.
      commentField.AnchoringBehavior.Clear();
      commentField.AnchoringBehavior.
        SetLeftAnchor(AnchoringBehavior.Edge.Left, 0.01);
      commentField.AnchoringBehavior.
        SetRightAnchor(AnchoringBehavior.Edge.Right, 0.01);
      commentField.AnchoringBehavior.
        SetTopAnchor(nameField, AnchoringBehavior.Edge.Bottom, 0.01);
      commentField.AnchoringBehavior.
        SetBottomAnchor(AnchoringBehavior.Edge.Bottom, 0.01);
    }
  }

.NET Framework-Sicherheit

Siehe auch

Referenz

ShapeField Klasse

Microsoft.VisualStudio.Modeling.Diagrams-Namespace