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 или больше Length свойства textBuffer
.
-или-
count
меньше 0 или больше оставшегося пространства в textBuffer
(textBuffer
.Length минус startIndex
).
Комментарии
Этот метод возвращает только непрерывные выполнения текста. Ничего не возвращается, если любой тип символа, отличный Text от , находится рядом с текущим TextPointer в указанном направлении. Аналогичным образом текст возвращается только до следующего нетекстового символа.