다음을 통해 공유


TextField 클래스

도구 이름이 나 영역을 표시할 수 있는 셰이프 부분을 나타내는 간단한 개체입니다.

상속 계층 구조

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.11.0(Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.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로 보고 하는 경우 크기 수용할 수 diplay 텍스트 길이 증가 합니다.Autosizable 텍스트 필드 여전히 Anchoringbehavior에 지정 된 최소 크기를 적용 합니다.
Public 속성 DefaultBackgroundBrushId Shape 필드의 배경을 그리는 데 기본 브러시의 ID를 가져오거나 설정 합니다. (ShapeField에서 상속됨)
Public 속성 DefaultCommitOnEscape Esc 키를 편집 커밋 하는지 여부를 나타내는 값을 가져오거나 설정 합니다.True 인 경우, 현재 위치에서 편집 하기 위해 Enter 키 CRLF로 사용 됩니다.
Public 속성 DefaultFocusable Shape 필드를 가져오고 포커스를 받을 수 있습니다 또는 shape 필드가 포커스를 받을 수 있는 여부를 확인 합니다. (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 Shape 필드 및 기본적으로 선택할 수 있는지 여부를 확인을 가져오거나 shape 필드의 기본 선택 상태를 설정 합니다. (ShapeField에서 상속됨)
Public 속성 DefaultSelectedBackgroundBrushId 기본 배경 브러시에 대 한 셰이프 필드의 ID를 가져오거나 설정 합니다. (ShapeField에서 상속됨)
Public 속성 DefaultSelectedTextBrushId 선택한 텍스트에 대 한 기본 브러쉬 id를 가져오거나 설정 합니다.
Public 속성 DefaultStringFormat 텍스트 그리기에 대 한 기본 문자열 형식을 가져오거나 설정 합니다.
Public 속성 DefaultText 그리기 기본 텍스트를 가져오거나 설정 합니다.
Public 속성 DefaultTextBrushId 기본 브러쉬 id 텍스트를 가져오거나 설정 합니다.
Public 속성 DefaultVisibility Shape 필드를 가져오고 기본적으로 표시 되 나 shape 필드의 기본 표시 여부 설정 여부를 확인 합니다. (ShapeField에서 상속됨)
Public 속성 DisplayMember 표시 되는 텍스트와 관련 된 속성 이름을 가져오거나 설정 합니다.
Public 속성 DrawBorder (사용 하지 않는-변경 됩니다)
Public 속성 FillBackground (사용 하지 않는-변경 됩니다)
Public 속성 Name Shape 필드의 이름을 가져옵니다. (ShapeField에서 상속됨)

위쪽

메서드

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

위쪽

설명

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

텍스트 필드의 레이블에 지정 된 공간 같은 모양 안의 영역을 관리 하는 개체입니다.텍스트 필드 인스턴스가 같은 클래스의 여러 셰이프 사이의 공유 합니다.텍스트 필드 인스턴스는 각 인스턴스에 대해 개별적으로 레이블의 텍스트를 저장 하지 않습니다: 대신의 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;

동적 사용자 지정

다 모양 도형이 나 모델 요소의 상태에 종속 되 게 하려면 사용자 고유의 array 하위 클래스를 파생 TextField 하나를 무시 하 고 Get... 방법입니다.또한 셰이프를 InitializeShapeFields 메서드를 재정의 하 고 사용자 지정 클래스의 인스턴스가 텍스트 필드의 인스턴스를 교체 해야 합니다.

다음 예제에서는 텍스트 필드의 글꼴이 셰이프의 모델 요소의 부울 도메인 속성의 상태에 종속합니다.

이 예제 코드를 실행 하려면 최소한의 언어 템플릿을 사용 하 여 새 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