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