TextPointer.GetPositionAtOffset 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 na pozici označenou zadaným posunem v symbolech od začátku obsahu.
Přetížení
| Name | Description |
|---|---|
| GetPositionAtOffset(Int32, LogicalDirection) |
Vrátí TextPointer na pozici označenou zadaným posunem v symbolech od začátku aktuálního TextPointer a v zadaném směru. |
| GetPositionAtOffset(Int32) |
Vrátí TextPointer na pozici označenou zadaným posunem v symbolech od začátku aktuálního TextPointer. |
GetPositionAtOffset(Int32, LogicalDirection)
Vrátí TextPointer na pozici označenou zadaným posunem v symbolech od začátku aktuálního TextPointer a v zadaném směru.
public:
System::Windows::Documents::TextPointer ^ GetPositionAtOffset(int offset, System::Windows::Documents::LogicalDirection direction);
public System.Windows.Documents.TextPointer GetPositionAtOffset(int offset, System.Windows.Documents.LogicalDirection direction);
member this.GetPositionAtOffset : int * System.Windows.Documents.LogicalDirection -> System.Windows.Documents.TextPointer
Public Function GetPositionAtOffset (offset As Integer, direction As LogicalDirection) As TextPointer
Parametry
- offset
- Int32
Posun v symbolech, pro které se má vypočítat a vrátit pozici. Pokud je posun záporný, vrátí TextPointer se před aktuálním proudem TextPointer, jinak následuje.
- direction
- LogicalDirection
Jedna z LogicalDirection hodnot, která určuje logický směr vráceného TextPointerobjektu .
Návraty
A TextPointer na pozici určenou zadaným posunem nebo null pokud posun přesahuje konec obsahu.
Poznámky
Za symbol se považuje některý z následujících způsobů:
Levá nebo pravá značka prvku TextElement .
Prvek UIElement obsažený v objektu nebo InlineUIContainerBlockUIContainer. Všimněte si, že takový UIElement se vždy počítá jako přesně jeden symbol; žádný další obsah nebo prvky obsažené v UIElement se nezapočítávají jako symboly.
16bitový znak Unicode uvnitř textového Run prvku.
Viz také
Platí pro
GetPositionAtOffset(Int32)
Vrátí TextPointer na pozici označenou zadaným posunem v symbolech od začátku aktuálního TextPointer.
public:
System::Windows::Documents::TextPointer ^ GetPositionAtOffset(int offset);
public System.Windows.Documents.TextPointer GetPositionAtOffset(int offset);
member this.GetPositionAtOffset : int -> System.Windows.Documents.TextPointer
Public Function GetPositionAtOffset (offset As Integer) As TextPointer
Parametry
- offset
- Int32
Posun v symbolech, pro které se má vypočítat a vrátit pozici. Pokud je posun záporný, pozice se vypočítá v logickém směru opaku, který je označen vlastností LogicalDirection .
Návraty
A TextPointer na pozici označenou zadaným posunem nebo null pokud není nalezena žádná odpovídající pozice.
Příklady
Následující příklad ukazuje použití pro tuto metodu. Příklad používá metodu GetPositionAtOffset k implementaci dvojice metod, jeden k výpočtu posunu na zadanou pozici vzhledem k jakémukoli hostitelskému odstavci a druhý k vrácení TextPointer k zadanému posunu v zadaném odstavci.
// Returns the offset for the specified position relative to any containing paragraph.
int GetOffsetRelativeToParagraph(TextPointer position)
{
// Adjust the pointer to the closest forward insertion position, and look for any
// containing paragraph.
Paragraph paragraph = (position.GetInsertionPosition(LogicalDirection.Forward)).Paragraph;
// Some positions may be not within any Paragraph;
// this method returns an offset of -1 to indicate this condition.
return (paragraph == null) ? -1 : paragraph.ContentStart.GetOffsetToPosition(position);
}
// Returns a TextPointer to a specified offset into a specified paragraph.
TextPointer GetTextPointerRelativeToParagraph(Paragraph paragraph, int offsetRelativeToParagraph)
{
// Verify that the specified offset falls within the specified paragraph. If the offset is
// past the end of the paragraph, return a pointer to the farthest offset position in the paragraph.
// Otherwise, return a TextPointer to the specified offset in the specified paragraph.
return (offsetRelativeToParagraph > paragraph.ContentStart.GetOffsetToPosition(paragraph.ContentEnd))
? paragraph.ContentEnd : paragraph.ContentStart.GetPositionAtOffset(offsetRelativeToParagraph);
}
' Returns the offset for the specified position relative to any containing paragraph.
Private Function GetOffsetRelativeToParagraph(ByVal position As TextPointer) As Integer
' Adjust the pointer to the closest forward insertion position, and look for any
' containing paragraph.
Dim paragraph As Paragraph = (position.GetInsertionPosition(LogicalDirection.Forward)).Paragraph
' Some positions may be not within any Paragraph
' this method returns an offset of -1 to indicate this condition.
Return If((paragraph Is Nothing), -1, paragraph.ContentStart.GetOffsetToPosition(position))
End Function
' Returns a TextPointer to a specified offset into a specified paragraph.
Private Function GetTextPointerRelativeToParagraph(ByVal paragraph As Paragraph, ByVal offsetRelativeToParagraph As Integer) As TextPointer
' Verify that the specified offset falls within the specified paragraph. If the offset is
' past the end of the paragraph, return a pointer to the farthest offset position in the paragraph.
' Otherwise, return a TextPointer to the specified offset in the specified paragraph.
Return If((offsetRelativeToParagraph > paragraph.ContentStart.GetOffsetToPosition(paragraph.ContentEnd)), paragraph.ContentEnd, paragraph.ContentStart.GetPositionAtOffset(offsetRelativeToParagraph))
End Function
Poznámky
Za symbol se považuje některý z následujících způsobů:
Levá nebo pravá značka prvku TextElement .
Prvek UIElement obsažený v objektu nebo InlineUIContainerBlockUIContainer. Všimněte si, že takový UIElement se vždy počítá jako přesně jeden symbol; žádný další obsah nebo prvky obsažené v UIElement se nezapočítávají jako symboly.
16bitový znak Unicode uvnitř textového Run prvku.