TextPointer.GetInsertionPosition(LogicalDirection) Methode

Definitie

Retourneert een TextPointer naar de dichtstbijzijnde invoegpositie in de opgegeven logische richting.

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

Parameters

direction
LogicalDirection

Een van de LogicalDirection waarden die de logische richting aangeeft waarin wordt gezocht naar de dichtstbijzijnde invoegpositie.

Retouren

Een TextPointer naar de dichtstbijzijnde invoegpositie in de opgegeven richting.

Voorbeelden

In dit voorbeeld ziet u hoe u de GetInsertionPosition methode gebruikt om te controleren of een opgegeven TextElement lege afdrukbare inhoud bevat.

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

Opmerkingen

Een invoegpositie is een positie waar nieuwe inhoud kan worden toegevoegd zonder semantische regels voor de bijbehorende inhoud te verbreken. In de praktijk bevindt een invoegpositie zich overal in de inhoud waar een caret kan worden geplaatst. Een voorbeeld van een geldige TextPointer positie die geen invoegpositie is, is de positie tussen twee aangrenzende tags (tussen de afsluitende Paragraph tag van de vorige alinea en de openingstag van de volgende alinea).

Als de TextPointer invoegpositie al verwijst naar een geldige invoegpositie, maar de afsluitende tag voor een niet-lege opmaakvolgorde direct volgt op die positie in de opgegeven richting, wordt de TextPointer geretourneerde door deze methode aangepast zodat deze verwijst naar de invoegpositie vlak na het sluiten van de opmaakreeks. Denk bijvoorbeeld aan de opmaakvolgorde <Bold>a</Bold>b. Houd er rekening mee dat er twee invoegposities zijn tussen de letters a en b een positie die voorafgaat aan de afsluitende Bold tag en één direct na de afsluitende Bold tag. Als GetInsertionPosition er een TextPointer aanroep wordt gedaan op de positie direct na de letter a en vóór de afsluitende Bold tag, en met een direction van Forward, wordt de geretourneerde TextPointer waarde aangepast om net vóór de letter bnaar de positie te wijzen, na de afsluitende Bold tag. Er wordt een vergelijkbare aanpassing aangebracht voor het openen van opmaaktags wanneer u in de tegenovergestelde logische richting werkt. Deze methode is bedoeld om een manier van ondubbelzinnigheid te bieden tussen invoegposities in vergelijkbare gevallen.

Deze methode kan ook worden gebruikt om selectief te zijn over invoegpunten wanneer een reeks structurele tags wordt betrokken. Wanneer u bijvoorbeeld op een positie staat tussen het sluiten en openen van alineatags, kan de richtingparameter worden gebruikt om het dichtstbijzijnde invoegpunt aan het begin van de volgende alinea te selecteren (door op te LogicalDirection.Forwardgeven ) of aan het einde van de voorgaande alinea (door op te LogicalDirection.Backwardgeven).

Als de aanwijzer zich al op de invoegpositie bevindt en er geen aangrenzende opmaaklabels in de opgegeven directionstaan, verwijst de geretourneerde waarde naar dezelfde positie als de aanroepende TextPointerTextPointerfunctie.

Het is mogelijk dat er geen geldige invoegpositie bestaat ten opzichte van de positie waarnaar wordt verwezen door een TextPointer. Dit kan gebeuren als de inhoud waarnaar wordt verwezen structureel onvolledig is, zoals in een lege tabel of lijst. In dergelijke gevallen retourneert deze methode simpelweg een TextPointer naar dezelfde positie als de TextPointer positie waaruit deze methode is aangeroepen. Deze methode retourneert altijd een geldige TextPointer.

Van toepassing op

Zie ook