TextPointer.GetInsertionPosition(LogicalDirection) Metodo

Definizione

Restituisce un oggetto TextPointer nella posizione di inserimento più vicina, nella direzione logica specificata.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

Parametri

direction
LogicalDirection

Uno dei valori LogicalDirection che specifica la direzione logica nella quale cercare la posizione di inserimento più vicina.One of the LogicalDirection values that specifies the logical direction in which to search for the closest insertion position.

Restituisce

Oggetto TextPointer nella posizione di inserimento più vicina nella direzione specificata.A TextPointer to the closest insertion position in the specified direction.

Esempi

Questo esempio illustra come usare il GetInsertionPosition metodo per verificare se un oggetto specificato TextElement è vuoto del contenuto stampabile.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.

Commenti

Una posizione di inserimento è una posizione in cui è possibile aggiungere nuovi contenuti senza suddividere le regole semantiche per il contenuto associato.An insertion position is a position where new content may be added without breaking any semantic rules for the associated content. In pratica, una posizione di inserimento è in qualsiasi punto del contenuto in cui è possibile posizionare un accento circonflesso.In practice, an insertion position is anywhere in content where a caret may be positioned. Un esempio di una posizione TextPointer valida che non è una posizione di inserimento è la posizione tra due Paragraph tag adiacenti, ovvero tra il tag di chiusura del paragrafo precedente e il tag di apertura del paragrafo successivo.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).

Se fa TextPointer già riferimento a una posizione di inserimento valida, ma il tag di chiusura per una sequenza di formattazione non vuota segue direttamente tale posizione nella direzione specificata, l'oggetto restituito da questo metodo viene regolato in modo da puntare all'inserimento. TextPointer posizione immediatamente dopo la chiusura della sequenza di formattazione.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. Si consideri ad esempio la <Bold>a</Bold>bsequenza di markup.For example, consider the markup sequence <Bold>a</Bold>b. Si noti che sono presenti due posizioni di inserimento tra a le b lettere e-una che precede il Bold tag di chiusura e una direttamente dopo il Bold tag di chiusura.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. Se GetInsertionPosition viene chiamato su un TextPointer oggetto nella posizione immediatamente successiva alla lettera a e prima direction del tag di Bold chiusura e con di Forward, l'oggetto restituito TextPointer viene regolato in modo da puntare al metodo posizione immediatamente precedente alla lettera b, dopo il tag Bold di chiusura.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. Viene apportata una modifica simile per l'apertura dei tag di formattazione quando si lavora nella direzione logica opposta.A similar adjustment is made for opening formatting tags when working in the opposite logical direction. Questo metodo è destinato a fornire un mezzo di risoluzione delle ambiguità tra le posizioni di inserimento in casi simili.This method is intended to provide a means of disambiguation between insertion positions in similar cases.

Questo metodo può essere utilizzato anche per essere selettivo sui punti di inserimento quando è presente una sequenza di tag strutturali.This method can also be used to be selective about insertion points when a sequence of structural tags is involved. Se, ad esempio, si trova in una posizione tra i tag di paragrafo di chiusura e di apertura, il parametro direction può essere utilizzato per selezionare il punto di inserimento più vicino all'inizio LogicalDirection.Forwarddel paragrafo seguente (specificando) o alla fine del paragrafo precedente ( specificando 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).

Se il puntatore si trova già in corrispondenza della posizione di inserimento e non vi sono tag di formattazione directionadiacenti nell' TextPointer oggetto specificato, l'oggetto restituito punta alla TextPointerstessa posizione della chiamata.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.

È possibile che non esista una TextPointerposizione di inserimento valida rispetto alla posizione a cui punta.It is possible that no valid insertion position exists relative to the position pointed to by a TextPointer. Questo problema può verificarsi se il contenuto a cui si fa riferimento è strutturalmente incompleto, come in una tabella o in un elenco vuoto.This can happen if the referenced content is structurally incomplete, as in an empty table or list. In questi casi, questo metodo restituisce semplicemente un TextPointer oggetto nella stessa posizione dell'oggetto TextPointer da cui è stato chiamato il metodo.In such cases, this method simply returns a TextPointer to the same position as the TextPointer from which this method was called. Questo metodo restituisce sempre un oggetto TextPointervalido.This method always returns a valid TextPointer.

Si applica a

Vedi anche