TextPointer.GetInsertionPosition(LogicalDirection) TextPointer.GetInsertionPosition(LogicalDirection) TextPointer.GetInsertionPosition(LogicalDirection) TextPointer.GetInsertionPosition(LogicalDirection) Method

Definición

Devuelve TextPointer a la posición de inserción más cercana en la dirección lógica especificada.Returns a TextPointer to the closest insertion position in the specified logical direction.

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

Parámetros

direction
LogicalDirection LogicalDirection LogicalDirection LogicalDirection

Uno de los valores de LogicalDirection que especifica la dirección lógica en la que buscar la posición de inserción más cercana.One of the LogicalDirection values that specifies the logical direction in which to search for the closest insertion position.

Devoluciones

Devuelve TextPointer a la posición de inserción más cercana en la dirección especificada.A TextPointer to the closest insertion position in the specified direction.

Ejemplos

En este ejemplo se muestra cómo utilizar GetInsertionPosition el método para comprobar si un TextElement especificado está vacío en el contenido que se pueda imprimir.This example shows how to use the GetInsertionPosition method to check whether a specified TextElement is empty of printable content.

// 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.

Comentarios

Una posición de inserción es una posición en la que se puede agregar contenido nuevo sin romper ninguna regla semántica para el contenido asociado.An insertion position is a position where new content may be added without breaking any semantic rules for the associated content. En la práctica, una posición de inserción es en cualquier parte del contenido donde se puede colocar un símbolo de intercalación.In practice, an insertion position is anywhere in content where a caret may be positioned. Un ejemplo de una posición TextPointer válida que no es una posición de inserción es la posición entre dos Paragraph etiquetas adyacentes (es decir, entre la etiqueta de cierre del párrafo anterior y la etiqueta de apertura del párrafo siguiente).An example of a valid TextPointer position that is not an insertion position is the position between two adjacent Paragraph tags (that is, between the closing tag of the preceding paragraph and the opening tag of the next paragraph).

Si ya apunta a una posición de inserción válida, pero la etiqueta de cierre de una secuencia de formato no vacía sigue directamente esa posición en la dirección determinada, el TextPointer devuelto por este método se ajusta para apuntar a la inserción. TextPointer posición justo después del cierre de la secuencia de formato.If the TextPointer already points to a valid insertion position, but the closing tag for a non-empty formatting sequence directly follows that position in the given direction, then the TextPointer returned by this method is adjusted to point to the insertion position just after the close of the formatting sequence. Por ejemplo, considere la secuencia <Bold>a</Bold>bde marcado.For example, consider the markup sequence <Bold>a</Bold>b. Tenga en cuenta que hay dos posiciones de inserción entre a las b Letras y-una que precede Bold a la etiqueta de cierre y una que Bold sigue directamente a la etiqueta de cierre.Note that there are two insertion positions between the letters a and b - one that precedes the closing Bold tag, and one directly following the closing Bold tag. Si GetInsertionPosition se llama TextPointer a en la posición directamente después de la letra a y antes de la etiqueta Bold de cierre, y con direction un Forwardde, el TextPointer devuelto se ajusta para que apunte al coloca justo delante de la bletra, después de Bold la etiqueta de cierre.If GetInsertionPosition is called on a TextPointer to the position directly after the letter a and before of the closing Bold tag, and with a direction of Forward, the returned TextPointer is adjusted to point to the position just before the letter b, after the closing Bold tag. Se realiza un ajuste similar para abrir etiquetas de formato al trabajar en la dirección lógica opuesta.A similar adjustment is made for opening formatting tags when working in the opposite logical direction. Este método está pensado para proporcionar un medio de desambiguación entre las posiciones de inserción en casos similares.This method is intended to provide a means of disambiguation between insertion positions in similar cases.

Este método también se puede usar para ser selectivo con respecto a los puntos de inserción cuando interviene una secuencia de etiquetas estructurales.This method can also be used to be selective about insertion points when a sequence of structural tags is involved. Por ejemplo, cuando se encuentra en una posición entre el cierre y la apertura de etiquetas de párrafo, el parámetro Direction se puede usar para seleccionar el punto de inserción más cercano al principio del LogicalDirection.Forwardpárrafo siguiente (especificando) o al final del párrafo anterior ( especificando LogicalDirection.Backward).For example, when at a position between closing and opening paragraph tags, the direction parameter can be used to select the closest insertion point at the beginning of the following paragraph (by specifying LogicalDirection.Forward) or at the end of the preceding paragraph (by specifying LogicalDirection.Backward).

Si el puntero ya está en la posición de inserción y no hay etiquetas de formato adyacentes en directionel especificado, TextPointer el devuelto apunta a la misma posición TextPointerque la llamada a.If the pointer is already at insertion position, and there are no adjacent formatting tags in the specified direction, the returned TextPointer points to the same position as the calling TextPointer.

Es posible que no exista ninguna posición de inserción válida en relación con la posición a la TextPointerque señala.It is possible that no valid insertion position exists relative to the position pointed to by a TextPointer. Esto puede ocurrir si el contenido al que se hace referencia está estructuralmente incompleto, como en una tabla o lista vacía.This can happen if the referenced content is structurally incomplete, as in an empty table or list. En tales casos, este método simplemente devuelve TextPointer a la misma posición que el desde el TextPointer que se llamó a este método.In such cases, this method simply returns a TextPointer to the same position as the TextPointer from which this method was called. Este método siempre devuelve un válido TextPointer.This method always returns a valid TextPointer.

Se aplica a

Consulte también: