Sdílet prostřednictvím


TextPointer.GetInsertionPosition(LogicalDirection) Metoda

Definice

TextPointer Vrátí hodnotu k nejbližší pozici vložení v zadaném logickém směru.

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

Parametry

direction
LogicalDirection

Jedna z LogicalDirection hodnot, která určuje logický směr, ve kterém se má hledat nejbližší pozice vložení.

Návraty

TextPointer

A TextPointer k nejbližší pozici vložení v zadaném směru.

Příklady

Tento příklad ukazuje, jak pomocí GetInsertionPosition metody zkontrolovat, jestli je zadaný TextElement obsah prázdný.

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

Poznámky

Pozice vložení je pozice, kde je možné přidat nový obsah, aniž by došlo k porušení sémantických pravidel přidruženého obsahu. V praxi je pozice vložení kdekoli v obsahu, kde může být umístěn kurzor. Příkladem platné TextPointer pozice, která není pozice vložení, je pozice mezi dvěma sousedními Paragraph značkami (to znamená mezi pravou značkou předchozího odstavce a levou značkou dalšího odstavce).

TextPointer Pokud již odkazuje na platnou pozici vložení, ale pravá značka pro neprázdnou posloupnost formátování přímo následuje tuto pozici v daném směru, pak TextPointer vrácená touto metodou je upravena tak, aby ukazovala na pozici vložení těsně za uzavřením sekvence formátování. Představte si například posloupnost <Bold>a</Bold>bznaček . Všimněte si, že mezi písmeny a jsou dvě pozice vložení – b jedna, která předchází uzavírací Bold značce, a jedna přímo za pravou Bold značkou. Je-li volána na TextPointer pozici přímo za písmenem a a před pravou Bold značkou a se direction Forwardznakem , je vrácena TextPointer upravena tak, aby ukazovala na pozici těsně před písmenem b, za pravou Bold značkou.GetInsertionPosition Podobná úprava se provádí při otevírání značek formátování při práci v opačném logickém směru. Tato metoda je určená k zajištění nejednoznačnosti mezi pozicemi vložení v podobných případech.

Tuto metodu lze použít také k selektivnímu výběru bodů vložení, pokud je zapojena posloupnost strukturálních značek. Pokud je například na pozici mezi značkami koncového a otevřeného odstavce, lze parametr směru použít k výběru nejbližšího kurzoru na začátku následujícího odstavce (zadáním LogicalDirection.Forward) nebo na konci předchozího odstavce (zadáním LogicalDirection.Backward).

Pokud je ukazatel již umístěn na pozici vložení a neexistují žádné sousední značky formátování v zadaném umístění direction, vrácený TextPointer odkazuje na stejnou pozici jako volání TextPointer.

Je možné, že neexistuje žádná platná pozice vložení vzhledem k pozici, na kterou TextPointerodkazuje . K tomu může dojít v případě, že odkazovaný obsah je strukturálně neúplný, jako v prázdné tabulce nebo seznamu. V takových případech tato metoda jednoduše vrátí stejnou TextPointer pozici jako TextPointer metoda, ze které byla tato metoda volána. Tato metoda vždy vrátí platnou TextPointer.

Platí pro

Viz také