다음을 통해 공유


TextPointer.GetInsertionPosition(LogicalDirection) 메서드

정의

지정된 논리 방향으로 가장 가까운 삽입 위치에 대한 TextPointer를 반환합니다.

public:
 System::Windows::Documents::TextPointer ^ GetInsertionPosition(System::Windows::Documents::LogicalDirection direction);
public System.Windows.Documents.TextPointer GetInsertionPosition (System.Windows.Documents.LogicalDirection direction);
member this.GetInsertionPosition : System.Windows.Documents.LogicalDirection -> System.Windows.Documents.TextPointer
Public Function GetInsertionPosition (direction As LogicalDirection) As TextPointer

매개 변수

direction
LogicalDirection

가장 가까운 삽입 위치를 검색할 논리 방향을 지정하는 LogicalDirection 값 중 하나입니다.

반환

TextPointer

지정된 방향으로 가장 가까운 삽입 위치에 대한 TextPointer입니다.

예제

사용 하는 방법을 보여 주는이 예제는 GetInsertionPosition 지정 하는지 여부를 확인 하는 메서드 TextElement 인쇄 가능한 콘텐츠가 비어 있습니다.

// Tests to see if the specified TextElement is empty (has no printatble content).
bool IsElementEmpty(TextElement element)
{
    // Find starting and ending insertion positions in the element.
    // Inward-facing directions are used to make sure that insertion position
    // will be found correctly in case when the element may contain inline 
    // formatting elements (such as a Span or Run that contains Bold or Italic elements).
    TextPointer start = element.ContentStart.GetInsertionPosition(LogicalDirection.Forward);
    TextPointer end = element.ContentEnd.GetInsertionPosition(LogicalDirection.Backward);
     
    // The element has no printable content if its first and last insertion positions are equal.
    return start.CompareTo(end) == 0;
} // End IsEmptyElement method.
' Tests to see if the specified TextElement is empty (has no printatble content).
Private Function IsElementEmpty(ByVal element As TextElement) As Boolean
    ' Find starting and ending insertion positions in the element.
    ' Inward-facing directions are used to make sure that insertion position
    ' will be found correctly in case when the element may contain inline 
    ' formatting elements (such as a Span or Run that contains Bold or Italic elements).
    Dim start As TextPointer = element.ContentStart.GetInsertionPosition(LogicalDirection.Forward)
    Dim [end] As TextPointer = element.ContentEnd.GetInsertionPosition(LogicalDirection.Backward)

    ' The element has no printable content if its first and last insertion positions are equal.
    Return start.CompareTo([end]) = 0

End Function ' End IsEmptyElement method.

설명

삽입 위치는 연결 된 콘텐츠에 대 한 의미 체계 규칙을 위반 하지 않고 새 콘텐츠를 추가할 수 있는 위치입니다. 실제로 삽입 위치는 콘텐츠 내 캐럿을 배치할 수 있습니다. 유효한 예가 TextPointer 삽입 위치 하지 않은 위치는 두 인접 한 위치 Paragraph 태그 (즉, 여는 태그 다음 단락의 이전 단락의 닫는 태그 사이).

경우는 TextPointer 이미 가리키는 올바른 삽입 위치에 있지만 닫는 태그 바로 뒤에 오는 해당 위치에서 지정 된 방향으로 비어 있지 않은 서식 시퀀스에 대 한 해당 TextPointer 이 반환한 메서드는 삽입을 가리키도록 조정 서식 지정 하는 시퀀스의 종료 된 이후에 배치 합니다. 예를 들어 태그 시퀀스를 고려해 보세요 <Bold>a</Bold>b합니다. 문자 a 사이에는 두 개의 삽입 위치가 있습니다 b . 하나는 닫는 태그 앞에 있고 다른 하나는 닫 BoldBold 태그 바로 뒤에 있습니다. 경우 GetInsertionPosition 라고 하는 TextPointer 문자 바로 뒤 위치 a 전과 닫기를 Bold 태그와를 directionForward, 반환 된 TextPointer 가리키도록 조정 됩니다는 문자 바로 앞 위치 b를 닫은 후 Bold 태그입니다. 반대 논리 방향으로 작업 하는 경우 서식 지정 태그를 열기 위한 비슷한 조정이 됩니다. 이 메서드가 유사한 경우 삽입 위치 간에 명확성 수단을 제공 하기에 적합 합니다.

이 메서드는 구조적 태그 시퀀스 관련 된 경우 삽입 지점을 선택 되도록 데도 사용할 수 있습니다. 예를 들어 결산 잔액과 개시 단락 태그 간에 위치에서 작업 하는 경우 방향 매개 변수 수 다음 단락 시작 부분에 가장 가까운 삽입 지점을 선택 (지정 하 여 LogicalDirection.Forward) 또는 위의 단락 (끝에 지정 하 여 LogicalDirection.Backward).

포인터가 이미 삽입 위치에 인접 한 형식 지정 태그가 지정 된 경우 direction에서 반환 된 TextPointer 호출와 동일한 위치를 가리키는 TextPointer.

가리키는 위치를 기준으로 올바른 삽입 지점이 없이 있는지 수는 TextPointer합니다. 이 참조 된 콘텐츠가 빈 테이블 또는 목록 구조적으로 불완전 한 경우에 발생할 수 있습니다. 이러한 경우에이 메서드가 단순히 반환을 TextPointer 와 동일한 위치에는 TextPointer 이 메서드가 호출 되었습니다. 이 메서드는 항상 유효한 반환 TextPointer합니다.

적용 대상

추가 정보