共用方式為


ShapeField.AnchoringBehavior 屬性

描述欄位內容應如何相對於父代 ShapeElement 自動調整本身的位置及大小。

命名空間:  Microsoft.VisualStudio.Modeling.Diagrams
組件:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (在 Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll 中)

語法

'宣告
Public ReadOnly Property AnchoringBehavior As AnchoringBehavior
public AnchoringBehavior AnchoringBehavior { get; }

屬性值

類型:Microsoft.VisualStudio.Modeling.Diagrams.AnchoringBehavior

備註

AnchoringBehavior 描述 ShapeField 應如何相對於其父代和同層級 ShapeElements 調整本身的位置及大小。

變更預設錨定行為。

  1. 設定您在 DSL 定義中的圖案類別的 [產生雙衍生] 屬性並按一下 [轉換所有範本]。

  2. 覆寫您的圖案類別的 InitializeDecorators() 。

    • 若要在您的 DSL 專案中的檔案,並加入您的圖案類別的部分類別定義。 插入方法在該類別。
  3. 呼叫 AnchoringBehavior 物件的 SetAnchor 方法。

範例

根據預設,文字欄位只佔用一行。 不過,這個範例會定義使用者可以輸入文字包裝」在多行上的圖案。 若要查看包裝的行為,我們也必須錨定欄位的邊緣到圖案的側邊。

警告

這個程式碼與從最小的語言方案範本建立的 DSL 一起使用。將裝飾項呼叫 CommentDecorator 到 ExampleShape,並將它對應至網域類別 ExampleElement的字串屬性。設定 ExampleShape 的 [產生加倍衍生] 屬性在 DSL 定義,因此, InitializeDecorators 方法可以覆寫。

  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 安全性

請參閱

參考

ShapeField 類別

Microsoft.VisualStudio.Modeling.Diagrams 命名空間