다음을 통해 공유


TextField 클래스

텍스트 레이블 또는 영역을 표시할 수 있는 모양의 일부를 나타내는 Lightweight 개체입니다.

상속 계층 구조

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

네임스페이스:  Microsoft.VisualStudio.Modeling.Diagrams
어셈블리:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0(Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0.dll)

구문

‘선언
Public Class TextField _
    Inherits ShapeField
public class TextField : ShapeField

TextField 형식에서는 다음과 같은 멤버를 노출합니다.

생성자

  이름 설명
Public 메서드 TextField TextField 클래스의 새 인스턴스를 초기화합니다.

위쪽

속성

  이름 설명
Public 속성 AnchoringBehavior 필드의 콘텐츠가 부모 ShapeElement에 상대적으로 자신을 배치하고 크기를 조정해야 하는 방법을 설명합니다. (ShapeField에서 상속됨)
Public 속성 DefaultAccessibleDescription 액세스 가능한 기본 설명을 가져오거나 설정합니다. (ShapeField에서 상속됨)
Public 속성 DefaultAccessibleName 액세스 가능한 개체에 대한 모양 필드의 기본 이름을 가져오거나 설정합니다. (ShapeField에서 상속됨)
Public 속성 DefaultAccessibleState 액세스 가능한 개체에 대한 모양 필드의 기본 상태를 가져옵니다. (ShapeField에서 상속됨)
Public 속성 DefaultAutoSize 값이 true인 경우 표시 텍스트 길이를 수용하도록 텍스트 필드의 최소 보고 크기가 커집니다.자동으로 크기를 조정할 수 있는 텍스트 필드는 AnchoringBehavior에 지정된 최소 크기를 계속해서 고려합니다.
Public 속성 DefaultBackgroundBrushId 모양 필드의 배경을 그리는 기본 브러시의 ID를 가져오거나 설정합니다. (ShapeField에서 상속됨)
Public 속성 DefaultCommitOnEscape Escape 키로 편집을 커밋할 것인지 여부를 나타내는 값을 가져오거나 설정합니다.True인 경우 내부 편집을 위해 Enter 키가 CRLF로 사용됩니다.
Public 속성 DefaultFocusable 모양 필드를 가져오고 포커스를 받을 수 있는지 여부를 확인하거나 모양 필드가 포커스를 받을 수 있도록 설정합니다. (ShapeField에서 상속됨)
Public 속성 DefaultFontId 기본 글꼴 id를 가져오거나 설정합니다.
Public 속성 DefaultInactiveSelectedBackgroundBrushId 모양 필드에 대한 기본 배경 브러시의 ID를 가져오거나 설정합니다. (ShapeField에서 상속됨)
Public 속성 DefaultInactiveSelectedTextBrushId 선택한 비활성 텍스트에 대한 기본 브러시 id를 가져오거나 설정합니다.
Public 속성 DefaultIsHorizontal 텍스트에 대한 기본 가로 상태를 가져오거나 설정합니다.
Public 속성 DefaultMultipleLine true인 경우 텍스트가 둘 이상의 줄에 자동으로 줄바꿈되어 사용 가능한 너비에 맞춥니다.
Public 속성 DefaultPenId 모양 필드에 사용할 기본 펜의 ID를 가져오거나 설정합니다. (ShapeField에서 상속됨)
Public 속성 DefaultReflectParentFocusedState 자식 모양 필드를 가져오고 부모 모양이 포커스를 받거나 부모 모양의 포커스 상태를 반영하는 기능을 설정할 때 자식 모양 필드가 포커스를 받아야 하는지 여부를 확인합니다. (ShapeField에서 상속됨)
Public 속성 DefaultReflectParentSelectedState 자식 모양 필드를 가져오고 부모 모양이 선택되거나 부모 모양의 선택 상태를 반영하는 기능을 설정할 때 자식 모양 필드가 선택되어야 하는지 여부를 확인합니다. (ShapeField에서 상속됨)
Public 속성 DefaultSelectable 모양 필드를 가져오고 모양 필드가 기본적으로 선택될 수 있는지 여부를 확인하거나 모양 필드의 기본 선택 상태를 설정합니다. (ShapeField에서 상속됨)
Public 속성 DefaultSelectedBackgroundBrushId 모양 필드에 대한 기본 배경 브러시의 ID를 가져오거나 설정합니다. (ShapeField에서 상속됨)
Public 속성 DefaultSelectedTextBrushId 선택한 텍스트에 대한 기본 브러시 id를 가져오거나 설정합니다.
Public 속성 DefaultStringFormat 텍스트 그리기에 대한 기본 문자열 형식을 가져오거나 설정합니다.
Public 속성 DefaultText 그릴 기본 텍스트를 가져오거나 설정합니다.
Public 속성 DefaultTextBrushId 텍스트에 대한 기본 브러시를 가져오거나 설정합니다.
Public 속성 DefaultVisibility 모양 필드를 가져오고 모양 필드가 기본적으로 나타나는지 여부를 확인하거나 모양 필드의 기본 표시 여부를 설정합니다. (ShapeField에서 상속됨)
Public 속성 DisplayMember 표시 텍스트와 관련된 속성 이름을 가져오거나 설정합니다.
Public 속성 DrawBorder (사용 하지 마십시오. 변경됩니다.)
Public 속성 FillBackground (사용 하지 마십시오. 변경됩니다.)
Public 속성 Name 셰이프 필드의 이름을 가져옵니다. (ShapeField에서 상속됨)

위쪽

메서드

  이름 설명
Public 메서드 AccessibleDoDefaultAction 액세스 가능한 개체에 기본 작업을 수행합니다. (ShapeField에서 상속됨)
Public 메서드 AllowInPlaceEditorAutoSize 기본적으로 필드가 자동 크기를 지원하는 경우 내부 편집기를 통해 자동으로 크기가 조정되도록 허용합니다. (ShapeField.AllowInPlaceEditorAutoSize(ShapeElement)을(를) 재정의함)
Public 메서드 AssociateValueWith(Store, AssociatedPropertyInfo) 셰이프 필드를 셰이프 요소에 할당된 도메인 속성과 연결합니다. (ShapeField에서 상속됨)
Public 메서드 AssociateValueWith(Store, Guid) 셰이프 필드를 셰이프 요소에 할당된 도메인 속성과 연결합니다. (ShapeField에서 상속됨)
Public 메서드 AssociateValueWith(Store, Guid, AssociatedPropertyInfo) 셰이프 필드를 셰이프 요소에 할당된 도메인 속성과 연결합니다. (ShapeField에서 상속됨)
Public 메서드 AssociateVisibilityWith(Store, AssociatedPropertyInfo) 모양 필드의 표시 유형을 모양 요소에 할당된 도메인 속성과 연결합니다. (ShapeField에서 상속됨)
Public 메서드 AssociateVisibilityWith(Store, Guid) 모양 필드의 표시 유형을 모양 요소에 할당된 도메인 속성과 연결합니다. (ShapeField에서 상속됨)
Public 메서드 AssociateVisibilityWith(Store, Guid, AssociatedPropertyInfo) 모양 필드의 표시 유형을 모양 요소에 할당된 도메인 속성과 연결합니다. (ShapeField에서 상속됨)
Public 메서드 CanEditValue 이 필드의 값을 편집할 수 있는지 여부를 나타내는 값을 반환합니다. (ShapeField.CanEditValue(ShapeElement, DiagramClientView)을(를) 재정의함)
Public 메서드 CommitPendingEdit 보류 중인 편집을 커밋합니다. (ShapeField.CommitPendingEdit(ShapeElement, DiagramClientView)을(를) 재정의함)
Public 메서드 DoHitTest 다이어그램에 지정된 지점에서 적중 테스트를 수행하여 지점이 모양 필드 경계 내에 있는지 여부를 확인합니다. (ShapeField에서 상속됨)
Public 메서드 DoKeyboardNavigation 모양 필드에서 키보드를 사용하여 이동합니다. (ShapeField에서 상속됨)
Public 메서드 DoPaint 텍스트 필드를 그립니다. (ShapeField.DoPaint(DiagramPaintEventArgs, ShapeElement)을(를) 재정의함)
Public 메서드 EditValue(ShapeElement, DiagramClientView) 현재 위치에서 편집기를 호출합니다. (ShapeField.EditValue(ShapeElement, DiagramClientView)을(를) 재정의함)
Public 메서드 EditValue(ShapeElement, DiagramClientView, PointD) 지정된 마우스 위치를 사용하여 캐럿을 설정하여 현재 위치에서 편집기를 호출합니다. (ShapeField.EditValue(ShapeElement, DiagramClientView, PointD)을(를) 재정의함)
Public 메서드 EditValue(ShapeElement, DiagramClientView, String) 내부 편집기를 호출한 다음 텍스트를 지정된 텍스트로 바꿉니다.
Public 메서드 Equals 지정한 개체와 현재 개체가 같은지 여부를 확인합니다. (Object에서 상속됨)
Protected 메서드 Finalize 가비지 수집에서 회수하기 전에 개체에서 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드 FindFirstChild 부모 모양 필드에서 첫 번째 자식 모양 필드를 찾습니다. (ShapeField에서 상속됨)
Public 메서드 FindLastChild 부모 모양 필드에서 마지막 자식 모양 필드를 찾습니다. (ShapeField에서 상속됨)
Public 메서드 FindNextChild 부모 모양 필드에서 다음 자식 모양 필드를 찾습니다. (ShapeField에서 상속됨)
Public 메서드 FindNextInChildSubFields 탐색 순서에서 다음 자식 모양 필드를 찾습니다. (ShapeField에서 상속됨)
Public 메서드 FindPreviousChild 부모 모양 필드에서 이전 자식 모양 필드를 찾습니다. (ShapeField에서 상속됨)
Public 메서드 FindPreviousInChildSubFields 탐색 순서에서 이전 자식 모양 필드를 찾습니다. (ShapeField에서 상속됨)
Public 메서드 Focused 모양 필드를 가져오고 여기에 포커스가 있는지 여부를 확인합니다. (ShapeField에서 상속됨)
Public 메서드 GetAccessibilityObject 셰이프 필드에 할당되는 액세스 가능한 개체를 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetAccessibleChild 자식 모양 필드에 대한 Accessibility 개체를 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetAccessibleChildCount 부모 모양 필드 및 자식 모양 필드에 할당된 내게 필요한 옵션 개체의 수를 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetAccessibleDefaultActionDescription 액세스 가능한 개체에 대한 모양 필드의 기본 목적을 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetAccessibleDescription 텍스트 필드에 대한 기본 액세스 가능한 설명을 반환합니다. (ShapeField.GetAccessibleDescription(ShapeElement)을(를) 재정의함)
Public 메서드 GetAccessibleHelp 액세스 가능한 개체에 대한 모양 필드 도움말을 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetAccessibleHelpTopicFileName 액세스 가능한 개체에 대한 도움말의 항목을 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetAccessibleHelpTopicId 액세스 가능한 개체의 도움말 항목에 할당되는 ID를 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetAccessibleName 표시 텍스트를 액세스 가능한 이름으로 반환합니다. (ShapeField.GetAccessibleName(ShapeElement)을(를) 재정의함)
Public 메서드 GetAccessibleRole 이 ShapeField의 액세스 가능한 역할을 검색합니다. (ShapeField.GetAccessibleRole(ShapeElement)을(를) 재정의함)
Public 메서드 GetAccessibleState 이 TextField의 액세스 가능한 상태를 검색합니다.기본적으로 TextField는 포커스를 받을 수 없고 표시할 텍스트가 없는 경우 내게 필요한 옵션 지원 클라이언트에 표시되지 않습니다. (ShapeField.GetAccessibleState(ShapeElement, DiagramClientView)을(를) 재정의함)
Public 메서드 GetAccessibleValue 액세스 가능한 값을 반환합니다. (ShapeField.GetAccessibleValue(ShapeElement)을(를) 재정의함)
Public 메서드 GetActiveInPlaceEditor 활성 내부 편집기의 컨트롤을 반환합니다.이 메서드는 이 필드에 대해 활성화된 내부 편집기가 없는 경우 null을 반환할 수도 있습니다. (ShapeField.GetActiveInPlaceEditor(ShapeElement, DiagramClientView)을(를) 재정의함)
Public 메서드 GetAutoSize 값이 true인 경우 표시 텍스트 길이를 수용하도록 텍스트 필드의 최소 보고 필수 크기가 커집니다.자동으로 크기를 조정할 수 있는 텍스트 필드는 AnchoringBehavior에 지정된 최소 크기를 계속해서 고려합니다.
Public 메서드 GetBackgroundBrush 이 모양 필드가 할당된 모양 요소의 배경을 그리는 브러시를 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetBackgroundBrushId 이 모양 필드가 할당된 모양 요소의 배경을 그리는 브러시의 ID를 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetBounds 모양 필드의 절대 범위를 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetCursor 마우스가 모양 필드를 가리키고 있을 때 나타나는 포인터를 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetDisplayText 이 필드에 의해 표시될 텍스트를 가져옵니다.
Public 메서드 GetFocusable 모양 필드를 가져오고 이 모양 필드가 포커스를 받을 수 있는지 여부를 확인합니다. (ShapeField에서 상속됨)
Public 메서드 GetFont 지정한 ShapeElement 인스턴스를 그리는 데 사용할 글꼴을 가져옵니다.
Public 메서드 GetFontHeight 세계 단위에서 (즉, 텍스트의 줄 높이)이이 글꼴의 줄 간격을 가져옵니다.줄 간격은 어센더 + 디센더 + 일부 권장 여분입니다.어센더는 기준선이 넘는 문자의 높이이며 디센더는 기준선을 밑도는 문자의 높이를 말합니다.여분은 디센더 아래에 있습니다.
Public 메서드 GetFontId 지정한 ShapeElement 인스턴스를 그리는 데 사용할 글꼴의 ID를 가져옵니다.
Public 메서드 GetHashCode 기본 해시 함수로 작동합니다. (Object에서 상속됨)
Public 메서드 GetInPlaceEditorBounds 내부 편집기의 범위를 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetMaximumInPlaceEditorSize 기본적으로 내부 편집 컨트롤을 통해 최대 75자까지 크기를 조정할 수 있습니다. (ShapeField.GetMaximumInPlaceEditorSize(ShapeElement)을(를) 재정의함)
Public 메서드 GetMinimumInPlaceEditorSize 최소 내부 편집기 크기는 문자의 최소 너비 및 줄 높이를 기준으로 합니다. (ShapeField.GetMinimumInPlaceEditorSize(ShapeElement)을(를) 재정의함)
Public 메서드 GetMinimumSize 이 ShapeField의 최소 너비와 높이를 world 단위로 가져옵니다. (ShapeField.GetMinimumSize(ShapeElement)을(를) 재정의함)
Public 메서드 GetMultipleLine true인 경우 텍스트가 둘 이상의 줄에 줄바꿈되어 사용 가능한 너비에 맞출 수 있습니다.
Public 메서드 GetPen 모양 필드에 할당되는 모양 요소를 그리는 펜을 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetPenId 모양 필드가 할당된 모양 요소를 그리는 펜의 ID를 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetPotentialMouseAction 사용자가 다이어그램에서 특정 지점을 클릭할 때 활성화할 마우스 동작을 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetSelectable 모양 필드를 가져오고 선택할 수 있는지 여부를 확인합니다. (ShapeField에서 상속됨)
Public 메서드 GetStringFormat 지정한 ShapeElement 인스턴스의 텍스트를 그리는 데 사용할 문자열 서식을 가져옵니다.
Public 메서드 GetTextBrush 지정한 ShapeElement 인스턴스의 텍스트를 그리는 데 사용할 브러시를 가져옵니다.
Public 메서드 GetTextBrushId 지정한 ShapeElement 인스턴스의 텍스트를 그리는 데 사용할 브러시의 ID를 가져옵니다.
Public 메서드 GetType 현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드 GetValue 이 TextFiedl의 값을 가져옵니다. (ShapeField.GetValue(ShapeElement)을(를) 재정의함)
Public 메서드 GetValueDomainPropertyInfo 모양 필드의 값에 할당되는 도메인 속성을 가져옵니다. (ShapeField에서 상속됨)
Public 메서드 GetVisible 모양 필드를 가져오고 표시되는지 여부를 확인합니다. (ShapeField에서 상속됨)
Public 메서드 HasFocusedAppearance 모양 필드를 가져오고 포커스를 표시해야 하는지 여부를 확인합니다. (ShapeField에서 상속됨)
Public 메서드 HasPendingEdit 내부 편집이 활성화되어 있는지 여부를 보류중인 커밋으로 나타내는 값을 반환합니다. (ShapeField.HasPendingEdit(ShapeElement, DiagramClientView)을(를) 재정의함)
Public 메서드 HasSelectedAppearance 모양 필드를 가져오고 선택할 수 있도록 표시되는지 여부를 확인합니다. (ShapeField에서 상속됨)
Public 메서드 IsNavigationKey(Char) 사용자가 누른 키를 가져오고 모양 필드 간을 탐색하는 데 해당 키를 사용할 수 있는지 여부를 확인합니다. (ShapeField에서 상속됨)
Public 메서드 IsNavigationKey(Keys) 사용자가 누른 키를 가져오고 모양 필드 간을 탐색하는 데 해당 키를 사용할 수 있는지 여부를 확인합니다. (ShapeField에서 상속됨)
Protected 메서드 MeasureDisplayText 지정된 텍스트를 측정하는 도우미 메서드입니다.
Protected 메서드 MemberwiseClone 현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드 NavigateAscend 선택된 모양에 대해 탐색 순서의 이전 모양 필드로 포커스를 이동합니다. (ShapeField에서 상속됨)
Public 메서드 NavigateDescend 선택된 모양에 대해 탐색 순서의 다음 모양 필드로 포커스를 이동합니다. (ShapeField에서 상속됨)
Public 메서드 NavigateToFirst 선택된 모양에 대해 탐색 순서의 첫 번째 모양 필드로 포커스를 이동합니다. (ShapeField에서 상속됨)
Public 메서드 NavigateToLast 선택된 모양에 대해 탐색 순서의 마지막 모양 필드로 포커스를 이동합니다. (ShapeField에서 상속됨)
Public 메서드 NavigateToNext 선택된 모양에 대해 탐색 순서의 다음 모양 필드로 포커스를 이동합니다. (ShapeField에서 상속됨)
Public 메서드 NavigateToPrevious 선택된 모양에 대해 탐색 순서의 이전 모양 필드로 포커스를 이동합니다. (ShapeField에서 상속됨)
Protected 메서드 OnBeginEdit 내부 편집이 시작되었으면 수신기에 알립니다. (ShapeField에서 상속됨)
Public 메서드 OnClick 사용자가 셰이프 필드를 클릭했으면 수신기에 알립니다. (ShapeField에서 상속됨)
Public 메서드 OnDoubleClick 기본적으로 내부 편집을 호출합니다. (ShapeField.OnDoubleClick(DiagramPointEventArgs)을(를) 재정의함)
Protected 메서드 OnEndEdit 내부 편집이 완료되었으면 수신기에 알립니다. (ShapeField에서 상속됨)
Public 메서드 OnKeyDown 사용자가 셰이프 필드를 가리킬 때 키를 누르고 있었으면 수신기에 알립니다. (ShapeField에서 상속됨)
Public 메서드 OnKeyPress 필드가 편집 가능하고 아무 영숫자 문자가 입력되면 편집기를 호출합니다. (ShapeField.OnKeyPress(DiagramKeyPressEventArgs)을(를) 재정의함)
Public 메서드 OnKeyUp 사용자가 셰이프 필드를 가리킬 때 키를 놓았으면 수신기에 알립니다. (ShapeField에서 상속됨)
Public 메서드 OnMouseDown 사용자가 셰이프 필드 위에서 마우스를 누르고 있으면 수신기에 알립니다. (ShapeField에서 상속됨)
Public 메서드 OnMouseMove 마우스가 셰이프 필드 위로 이동했음을 수신기에 알립니다. (ShapeField에서 상속됨)
Public 메서드 OnMouseUp 사용자가 셰이프 필드 위에서 마우스 단추를 놓았으면 수신기에 알립니다. (ShapeField에서 상속됨)
Public 메서드 OnMouseWheel 마우스가 셰이프 필드 위에서 회전했음을 수신기에 알립니다. (ShapeField에서 상속됨)
Public 메서드 Selected 모양 필드를 가져오고 선택되었는지 여부를 확인합니다. (ShapeField에서 상속됨)
Public 메서드 SetSelectionRange 선택 영역을 자식 모양 필드 범위로 설정합니다. (ShapeField에서 상속됨)
Public 메서드 SetValue 모양 필드에 지정한 값을 할당합니다. (ShapeField에서 상속됨)
Public 메서드 SetVisible 모양 필드의 표시 유형을 설정합니다. (ShapeField에서 상속됨)
Public 메서드 ToString 현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)

위쪽

설명

셰이프의 텍스트 데코레이터를 정의 하는 경우는 텍스트 필드에 표시 됩니다. 초기화 TextFields 및 다른 ShapeFields의 예 DSL 솔루션에서 Dsl\GeneratedCode\Shapes.cs를 검사 합니다.

텍스트 필드에 레이블을 할당 공간 등의 셰이프 내에서 영역을 관리 하는 개체입니다. TextField 인스턴스는 같은 클래스의 여러 셰이프 간에 공유 됩니다. TextField 인스턴스는 각 인스턴스에 대해 개별적으로 레이블의 텍스트를 저장 하지 않습니다: 대신의 GetDisplayText(ShapeElement) 메서드를 매개 변수로 모양 하며 셰이프 및 해당 모델 요소의 현재 상태에 따라 텍스트를 찾을 수 있습니다.

텍스트 필드의 모양이 확인 하는 방법

기본 DoPaint() 메서드에서이 작업을 수행 합니다. 이 해당 코드의 간소화 된 프레젠테이션.

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

다른 쌍의 몇 가지 Get 메서드 및 Default 속성 같은 DefaultMultipleLine/GetMultipleLine(). Shape 필드의 모든 인스턴스에 대 한 값을 변경 하려면 기본 속성 값을 할당할 수 있습니다. 셰이프의 인스턴스에서 다른, 또는 셰이프 또는 해당 모델 요소의 상태에 따라 다양 한 값을 재정의 하 여 Get 메서드.

정적 사용자 지정

Shape 필드의 모든 인스턴스를 변경 하려면 DSL 정의에 속성을 설정할 수 있는지 여부에 대해 먼저 알아봅니다. 예를 들어, 속성 창에서 글꼴 크기와 스타일을 설정할 수 있습니다.

그렇지 않으면 다음 재정의 InitializeShapeFields shape 클래스에 적절 한 값을 지정 하는 방법 Default... 텍스트 필드의 속성입니다.

경고

재정의 하려면 InitializeShapeFields()를 설정 해야는 이중 파생 생성 shape 클래스의 속성 true DSL 정의에.

이 예제에서는 셰이프의 사용자 설명에 사용할 수 있는 텍스트 필드를 있습니다. 표준 주석 글꼴을 사용 하려고 합니다. 표준 글꼴 스타일 집합에서 이기 때문에 기본 글꼴 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;

사용자 지정 동적

자체 서브 클래스의 파생 도형 또는 해당 모델 요소의 상태에 따라 달라 집니다 모양의 하려면 TextField 하나 이상을 무시 하 고 Get... 방법. 또한 모양을 InitializeShapeFields 메서드를 재정의 하 고 사용자 지정 클래스의 인스턴스를 사용 하 여 텍스트 필드의 인스턴스를 대체 해야 합니다.

다음 예제에서는 텍스트 필드의 글꼴 셰이프의 모델 요소의 부울 domain 속성의 상태에 따라 다릅니다.

이 예제 코드를 실행 하려면 최소한의 언어 서식 파일을 사용 하 여 새 DSL 솔루션을 만듭니다. 부울 도메인 속성 추가 AlternateState ExampleElement 도메인 클래스에 있습니다. 아이콘 데코레이터는 ExampleShape 클래스에 추가 하 고 비트맵 파일에 이미지를 설정 합니다. 모든 템플릿 변환을 클릭합니다. DSL 프로젝트의 새 코드 파일을 추가 하 고 다음 코드를 삽입 합니다.

코드를 테스트 하려면 F5 키를 눌러 및 디버깅 솔루션에서 샘플 다이어그램을 엽니다. 아이콘의 기본 상태가 표시 됩니다. 셰이프를 선택 하 고 속성 창에서 값을 변경 하면 AlternateState 속성입니다. 요소 이름의 글꼴을 변경 해야 합니다.

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

  }

스타일 설정

앞의 예제에서는 텍스트 필드를 사용할 수 있는 글꼴을 변경 하는 방법을 보여 줍니다. 그러나 셰이프 또는 응용 프로그램과 연결 된 스타일 집합 중 하나를 변경 하는 것이 좋습니다 메서드는. 이렇게 하려면 재정의 GetFontId 또는 GetTextBrushId().

수도 스타일 집합을 변경 하면 셰이프를 재정의 하 여 InitializeResources. 이 글꼴 및 브러쉬 모양 필드에 대 한 변경의 효과 가집니다.

스레드로부터의 안전성

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

참고 항목

참조

Microsoft.VisualStudio.Modeling.Diagrams 네임스페이스

InitializeShapeFields

StyleSet

ShapeField