TextPointer.GetTextInRun 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í text sousedící s aktuálním TextPointertextem .
Přetížení
| Name | Description |
|---|---|
| GetTextInRun(LogicalDirection) |
Vrátí řetězec obsahující libovolný text sousedící s aktuálním TextPointer směrem v zadaném logickém směru. |
| GetTextInRun(LogicalDirection, Char[], Int32, Int32) |
Zkopíruje zadaný maximální počet znaků z libovolného sousedního textu v zadaném směru do pole znaků zadaných volajícím. |
GetTextInRun(LogicalDirection)
Vrátí řetězec obsahující libovolný text sousedící s aktuálním TextPointer směrem v zadaném logickém směru.
public:
System::String ^ GetTextInRun(System::Windows::Documents::LogicalDirection direction);
public string GetTextInRun(System.Windows.Documents.LogicalDirection direction);
member this.GetTextInRun : System.Windows.Documents.LogicalDirection -> string
Public Function GetTextInRun (direction As LogicalDirection) As String
Parametry
- direction
- LogicalDirection
Jedna z LogicalDirection hodnot, která určuje logický směr, ve kterém se má najít a vrátit jakýkoli sousední text.
Návraty
Řetězec obsahující jakýkoli sousední text v zadaném logickém směru nebo Empty pokud se nenajde žádný sousední text.
Příklady
Následující příklad ukazuje použití pro tuto metodu. Příklad používá metodu GetTextInRun k implementaci jednoduchého textového extraktoru. Metoda vrátí zřetězení řetězce veškerého textu mezi dvěma zadanými TextPointer instancemi.
I když lze příklad použít k extrakci libovolného textu mezi dvěma TextPointer instancemi, je určen pouze pro ilustrativní účely a neměl by být použit v produkčním kódu. TextRange.Text Místo toho použijte vlastnost.
// Returns a string containing the text content between two specified TextPointers.
string GetTextBetweenTextPointers(TextPointer start, TextPointer end)
{
StringBuilder buffer = new StringBuilder();
while (start != null && start.CompareTo(end) < 0)
{
if (start.GetPointerContext(LogicalDirection.Forward) == TextPointerContext.Text)
buffer.Append(start.GetTextInRun(LogicalDirection.Forward));
// Note that when the TextPointer points into a text run, this skips over the entire
// run, not just the current character in the run.
start = start.GetNextContextPosition(LogicalDirection.Forward);
}
return buffer.ToString();
} // End GetTextBetweenPointers.
' Returns a string containing the text content between two specified TextPointers.
Private Function GetTextBetweenTextPointers(ByVal start As TextPointer, ByVal [end] As TextPointer) As String
Dim buffer As New StringBuilder()
Do While start IsNot Nothing AndAlso start.CompareTo([end]) < 0
If start.GetPointerContext(LogicalDirection.Forward) = TextPointerContext.Text Then
buffer.Append(start.GetTextInRun(LogicalDirection.Forward))
End If
' Note that when the TextPointer points into a text run, this skips over the entire
' run, not just the current character in the run.
start = start.GetNextContextPosition(LogicalDirection.Forward)
Loop
Return buffer.ToString()
End Function ' End GetTextBetweenPointers.
Poznámky
Tato metoda vrací pouze nepřerušovaná spuštění textu. Nic se nevrátí, pokud jakýkoli jiný typ symbolu, než Text je sousední k aktuálnímu TextPointer směru v zadaném směru. Podobně se text vrátí až k dalšímu netextovém symbolu.
Viz také
Platí pro
GetTextInRun(LogicalDirection, Char[], Int32, Int32)
Zkopíruje zadaný maximální počet znaků z libovolného sousedního textu v zadaném směru do pole znaků zadaných volajícím.
public:
int GetTextInRun(System::Windows::Documents::LogicalDirection direction, cli::array <char> ^ textBuffer, int startIndex, int count);
public int GetTextInRun(System.Windows.Documents.LogicalDirection direction, char[] textBuffer, int startIndex, int count);
member this.GetTextInRun : System.Windows.Documents.LogicalDirection * char[] * int * int -> int
Public Function GetTextInRun (direction As LogicalDirection, textBuffer As Char(), startIndex As Integer, count As Integer) As Integer
Parametry
- direction
- LogicalDirection
Jedna z LogicalDirection hodnot, která určuje logický směr, ve kterém se má najít a zkopírovat jakýkoli sousední text.
- textBuffer
- Char[]
Vyrovnávací paměť, do které se zkopíruje jakýkoli text.
- startIndex
- Int32
Index, do textBuffer kterého chcete začít psát zkopírovaný text.
- count
- Int32
Maximální počet znaků, které se mají zkopírovat.
Návraty
Počet znaků, které se skutečně zkopírovaly do textBuffer.
Výjimky
startIndex je menší než 0 nebo větší než Length vlastnost textBuffer.
nebo
countje menší než 0 nebo větší než zbývající mezera v textBuffer (textBufferminusLengthstartIndex).
Poznámky
Tato metoda vrací pouze nepřerušovaná spuštění textu. Nic se nevrátí, pokud jakýkoli jiný typ symbolu, než Text je sousední k aktuálnímu TextPointer směru v zadaném směru. Podobně se text vrátí až k dalšímu netextovém symbolu.