TextPointer.GetTextInRun Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt Text neben dem aktuellen TextPointerzurück.
Überlädt
GetTextInRun(LogicalDirection) |
Gibt eine Zeichenfolge zurück, die an den aktuellen TextPointer in der angegebenen logischen Richtung angrenzenden Text enthält. |
GetTextInRun(LogicalDirection, Char[], Int32, Int32) |
Kopiert die angegebene maximale Anzahl von Zeichen aus einem angrenzenden Text in die angegebene Richtung in ein vom Aufrufer bereitgestelltes Zeichenarray. |
GetTextInRun(LogicalDirection)
Gibt eine Zeichenfolge zurück, die an den aktuellen TextPointer in der angegebenen logischen Richtung angrenzenden Text enthält.
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
Parameter
- direction
- LogicalDirection
Einer der LogicalDirection Werte, die die logische Richtung angibt, in der benachbarten Text gefunden und zurückgegeben werden soll.
Gibt zurück
Eine Zeichenfolge mit angrenzendem Text in der angegebenen logischen Richtung oder Empty, wenn kein angrenzender Text gefunden werden kann.
Beispiele
Im folgenden Beispiel wird eine Verwendung für diese Methode veranschaulicht. Im Beispiel wird die GetTextInRun-Methode verwendet, um einen einfachen Textextraktionsmodul zu implementieren. Die Methode gibt eine Zeichenfolgenverkettung aller Text zwischen zwei angegebenen TextPointer Instanzen zurück.
Während das Beispiel verwendet werden kann, um Text zwischen zwei TextPointer Instanzen zu extrahieren, ist es nur für veranschauliche Zwecke vorgesehen und sollte nicht im Produktionscode verwendet werden. Verwenden Sie stattdessen die eigenschaft TextRange.Text.
// 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.
Hinweise
Diese Methode gibt nur unterbrechungsfreie Textläufe zurück. Es wird nichts zurückgegeben, wenn ein anderer Symboltyp als Text neben dem aktuellen TextPointer in der angegebenen Richtung liegt. Ebenso wird Text nur bis zum nächsten Nicht-Text-Symbol zurückgegeben.
Weitere Informationen
Gilt für:
GetTextInRun(LogicalDirection, Char[], Int32, Int32)
Kopiert die angegebene maximale Anzahl von Zeichen aus einem angrenzenden Text in die angegebene Richtung in ein vom Aufrufer bereitgestelltes Zeichenarray.
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
Parameter
- direction
- LogicalDirection
Einer der LogicalDirection Werte, die die logische Richtung angibt, in der benachbarten Text gesucht und kopiert werden soll.
- textBuffer
- Char[]
Ein Puffer, in den text kopiert wird.
- startIndex
- Int32
Ein Index in textBuffer
, bei dem mit dem Schreiben kopierter Text begonnen werden soll.
- count
- Int32
Die maximale Anzahl der zu kopierenden Zeichen.
Gibt zurück
Die Anzahl der Zeichen, die tatsächlich in textBuffer
kopiert wurden.
Ausnahmen
startIndex
ist kleiner als 0 oder größer als die Length Eigenschaft von textBuffer
.
-oder-
count
ist kleiner als 0 oder größer als der verbleibende Platz in textBuffer
(textBuffer
.Length minus startIndex
).
Hinweise
Diese Methode gibt nur unterbrechungsfreie Textläufe zurück. Es wird nichts zurückgegeben, wenn ein anderer Symboltyp als Text neben dem aktuellen TextPointer in der angegebenen Richtung liegt. Ebenso wird Text nur bis zum nächsten Nicht-Text-Symbol zurückgegeben.