TextPointer.GetInsertionPosition(LogicalDirection) Método

Definición

Devuelve TextPointer a la posición de inserción más cercana en la dirección lógica especificada.

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

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.

Devoluciones

TextPointer

Devuelve TextPointer a la posición de inserción más cercana en la dirección especificada.

Ejemplos

En este ejemplo se muestra cómo usar el GetInsertionPosition método para comprobar si un especificado TextElement está vacío de contenido imprimible.

// 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 interrumpir ninguna regla semántica para el contenido asociado. En la práctica, una posición de inserción se encuentra en cualquier lugar del contenido donde se puede colocar un símbolo de intercalación. Un ejemplo de una posición válida TextPointer que no es una posición de inserción es la posición entre dos etiquetas adyacentes Paragraph (es decir, entre la etiqueta de cierre del párrafo anterior y la etiqueta de apertura del párrafo siguiente).

TextPointer 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 especificada, el TextPointer devuelto por este método se ajusta para apuntar a la posición de inserción justo después del cierre de la secuencia de formato. Por ejemplo, considere la secuencia <Bold>a</Bold>bde marcado . Tenga en cuenta que hay dos posiciones de inserción entre las letras a y b : una que precede a la etiqueta de cierre Bold y otra directamente después de la etiqueta de cierre Bold . Si GetInsertionPosition se llama a en a TextPointer la posición directamente después de la letra a y antes de la etiqueta de cierre Bold , y con un direction de Forward, el devuelto TextPointer se ajusta para apuntar a la posición justo antes de la letra b, después de la etiqueta de cierre Bold . Se realiza un ajuste similar para abrir etiquetas de formato al trabajar en la dirección lógica opuesta. Este método está pensado para proporcionar un medio de desambiguación entre posiciones de inserción en casos similares.

Este método también se puede usar para ser selectivo sobre los puntos de inserción cuando interviene una secuencia de etiquetas estructurales. Por ejemplo, cuando se encuentra en una posición entre etiquetas de párrafo de cierre y apertura, el parámetro direction se puede usar para seleccionar el punto de inserción más cercano al principio del párrafo siguiente (especificando LogicalDirection.Forward) o al final del párrafo anterior (especificando LogicalDirection.Backward).

Si el puntero ya está en la posición de inserción y no hay etiquetas de formato adyacentes en el especificado direction, el valor devuelto TextPointer apunta a la misma posición que la llamada TextPointera .

Es posible que no exista ninguna posición de inserción válida en relación con la posición a la que apunta un TextPointerobjeto . Esto puede ocurrir si el contenido al que se hace referencia está incompleto estructuralmente, como en una tabla o lista vacías. En tales casos, este método simplemente devuelve una TextPointer a la misma posición que la desde la TextPointer que se llamó a este método. Este método siempre devuelve un valor válido TextPointer.

Se aplica a

Consulte también