TextPointer.GetInsertionPosition(LogicalDirection) Metodo

Definizione

Restituisce un oggetto TextPointer nella posizione di inserimento più vicina, nella direzione logica specificata.

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.

Restituisce

TextPointer

Oggetto TextPointer nella posizione di inserimento più vicina nella direzione specificata.

Esempio

In questo esempio viene illustrato come utilizzare il GetInsertionPosition metodo per verificare se un oggetto specificato TextElement è vuoto di contenuto stampabile.

// 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 nuovo contenuto senza interrompere regole semantiche per il contenuto associato. In pratica, una posizione di inserimento si trova in qualsiasi punto del contenuto in cui è possibile posizionare un cursore. Un esempio di posizione valida TextPointer che non è una posizione di inserimento è la posizione tra due tag adiacenti Paragraph , ovvero tra il tag di chiusura del paragrafo precedente e il tag di apertura del paragrafo successivo.

Se l'oggetto TextPointer punta già 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 TextPointer restituito da questo metodo viene regolato in modo da puntare alla posizione di inserimento subito dopo la chiusura della sequenza di formattazione. Si consideri ad esempio la sequenza <Bold>a</Bold>bdi markup . Si noti che sono presenti due posizioni di inserimento tra le lettere a e b , una che precede il tag di chiusura Bold e una direttamente dopo il tag di chiusura Bold . Se GetInsertionPosition viene chiamato su una TextPointer posizione direttamente dopo la lettera a e prima del tag di chiusura Bold e con un direction di Forward, l'oggetto restituito TextPointer viene regolato in modo da puntare alla posizione immediatamente prima della lettera b, dopo il tag di chiusura Bold . Viene apportata una regolazione simile per l'apertura dei tag di formattazione quando si lavora nella direzione logica opposta. Questo metodo è progettato per fornire un mezzo di disambiguazione tra posizioni di inserimento in casi simili.

Questo metodo può essere utilizzato anche per essere selettivo sui punti di inserimento quando viene coinvolta una sequenza di tag strutturali. Ad esempio, quando in una posizione tra i tag di paragrafo di chiusura e di apertura, è possibile utilizzare il parametro direction per selezionare il punto di inserimento più vicino all'inizio del paragrafo seguente (specificando LogicalDirection.Forward) o alla fine del paragrafo precedente (specificando LogicalDirection.Backward).

Se il puntatore è già in posizione di inserimento e non sono presenti tag di formattazione adiacenti nell'oggetto specificato direction, i punti restituiti TextPointer alla stessa posizione della chiamata TextPointera .

È possibile che nessuna posizione di inserimento valida esista rispetto alla posizione a cui punta un oggetto TextPointer. Ciò può verificarsi se il contenuto a cui si fa riferimento è strutturalmente incompleto, come in una tabella o un elenco vuoto. In questi casi, questo metodo restituisce semplicemente un oggetto TextPointer alla stessa posizione dell'oggetto TextPointer da cui è stato chiamato questo metodo. Questo metodo restituisce sempre un oggetto valido TextPointer.

Si applica a

Vedi anche