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í.
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
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>b
znač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.