TextPointer.GetTextInRun Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает текст, расположенный рядом с текущим TextPointer.
Перегрузки
GetTextInRun(LogicalDirection) |
Возвращает строку, содержащую любой текст, смежный с текущим TextPointer в указанном логическом направлении. |
GetTextInRun(LogicalDirection, Char[], Int32, Int32) |
Копирует указанное максимальное количество символов из любого соседнего текста в указанном направлении в указанный массив символов, предоставленный вызывающим. |
GetTextInRun(LogicalDirection)
Возвращает строку, содержащую любой текст, смежный с текущим TextPointer в указанном логическом направлении.
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
Параметры
- direction
- LogicalDirection
Одно из LogicalDirection значений, указывающее логическое направление, в котором нужно найти и вернуть любой смежный текст.
Возвращаемое значение
Строка, содержащая любой смежный текст в указанном логическом направлении, или Empty, если не найден смежный текст.
Примеры
В следующем примере демонстрируется использование этого метода. В примере используется метод GetTextInRun для реализации простого средства извлечения текста. Метод возвращает объединение строк всех текстов между двумя указанными экземплярами TextPointer.
Хотя пример можно использовать для извлечения любого текста между двумя экземплярами TextPointer, он предназначен только для иллюстрирующих целей и не должен использоваться в рабочем коде. Вместо этого используйте свойство 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.
Комментарии
Этот метод возвращает только непрерывные запуски текста. Ничего не возвращается, если любой тип символа, отличный от Text, находится рядом с текущим TextPointer в указанном направлении. Аналогичным образом текст возвращается только до следующего нетекстового символа.
См. также раздел
Применяется к
GetTextInRun(LogicalDirection, Char[], Int32, Int32)
Копирует указанное максимальное количество символов из любого соседнего текста в указанном направлении в указанный массив символов, предоставленный вызывающим.
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
Параметры
- direction
- LogicalDirection
Одно из значений LogicalDirection, указывающее логическое направление, в котором нужно найти и скопировать любой смежный текст.
- textBuffer
- Char[]
Буфер, в который копируется любой текст.
- startIndex
- Int32
Индекс в textBuffer
, с которого начинается написание скопированного текста.
- count
- Int32
Максимальное количество символов для копирования.
Возвращаемое значение
Количество символов, скопированных в textBuffer
.
Исключения
startIndex
меньше 0 или больше свойства LengthtextBuffer
.
-или-
count
меньше 0 или больше оставшегося пространства в textBuffer
(textBuffer
.Length минус startIndex
).
Комментарии
Этот метод возвращает только непрерывные запуски текста. Ничего не возвращается, если любой тип символа, отличный от Text, находится рядом с текущим TextPointer в указанном направлении. Аналогичным образом текст возвращается только до следующего нетекстового символа.