Partager via


ShapeField.AnchoringBehavior, propriété

Décrit comment le contenu du champ doit se positionner et se dimensionner en fonction du ShapeElement parent.

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 ReadOnly Property AnchoringBehavior As AnchoringBehavior
public AnchoringBehavior AnchoringBehavior { get; }

Valeur de propriété

Type : Microsoft.VisualStudio.Modeling.Diagrams.AnchoringBehavior

Notes

L'AnchoringBehavior décrit comment le ShapeField doit se positionner et ajuster en relation avec son parent et frère ShapeElements.

Pour modifier la valeur par défaut ancrant le comportement

  1. Définissez la propriété Génère un double dérivée de la classe de forme dans la définition de DSL, puis cliquez sur Transformer tous les modèles.

  2. Remplacez InitializeDecorators() dans la classe de forme.

    • Créez un fichier dans votre projet de DSL, puis ajoutez une définition de classe partielle pour votre classe de forme. Insérez la méthode de la classe.
  3. Appelez les méthodes d'SetAnchor d'AnchoringBehavior.

Exemples

Par défaut, un champ de texte occupe une seule ligne. Cependant, cet exemple définit une forme dans laquelle l'utilisateur peut taper le texte qui « enveloppes » sur plusieurs lignes. Pour afficher le comportement d'habillage, nous devons également ancrer les côtés du champ à côté de la forme.

Avertissement

Ce code fonctionne avec un DSL création du modèle minimal de solution de langage.Ajoutez un décorateur appelé CommentDecorator à ExampleShape, et le mappez- à une propriété de chaîne de la classe ExampleElementde domaine.Définissez la propriété Génère un double dérivée pour ExampleShape dans la définition de DSL, afin que la méthode d'InitializeDecorators peut être remplacée.

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

Sécurité .NET Framework

Voir aussi

Référence

ShapeField Classe

Microsoft.VisualStudio.Modeling.Diagrams, espace de noms