TextPointer.GetInsertionPosition(LogicalDirection) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí TextPointer na 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
A TextPointer na 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, do které lze 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 je možné umístit kurzor. Příkladem platné pozice TextPointer, která není pozice vložení, je pozice mezi dvěma sousedními značkami Paragraph (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 koncová 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ě po uzavření sekvence formátování. Představte si například sekvenci <Bold>a</Bold>brevizí . Všimněte si, že mezi písmeny ab jsou dvě pozice vložení – jedna, která předchází koncové Bold značce, a jedna přímo za pravou Bold značkou. Je-li volána na GetInsertionPosition pozici přímo za písmenem TextPointer a před pravou a značkou a s znakem Bolddirection, je vrácena Forward upravena tak, aby ukazovala na pozici těsně před písmenem TextPointer, za pravou b značkou.Bold Při práci v opačném logickém směru se provádí podobná úprava pro otevírání značek formátování. Tato metoda je určená k tomu, aby poskytovala způsob nejednoznačnosti mezi pozicemi vložení v podobných případech.
Tuto metodu lze také použít k selektivnímu vkládání bodů při zapojení sekvence strukturálních značek. Pokud je například na pozici mezi značkami koncového a levého odstavce, lze použít směrový parametr k výběru nejbližšího místa vložení 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ž na pozici vložení a v zadaném seznamu directionnejsou žádné sousední značky formátování , vrátí TextPointer body na stejnou pozici jako volání TextPointer.
Je možné, že neexistuje žádná platná pozice vložení vzhledem k pozici, na kterou odkazuje znak .TextPointer K tomu může dojít, pokud je odkazovaný obsah 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 ta, ze které byla tato metoda volána. Tato metoda vždy vrátí platnou TextPointerhodnotu .