TextPointer.GetTextInRun 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回与当前 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 或大于 textBuffer
的 Length 属性。
- 或 -
count
小于 0 或大于 (textBuffer
中的textBuffer
剩余空间。Length减去 startIndex
) 。
注解
此方法仅返回连续运行的文本。 如果除 Text 其他任何符号类型在指定方向上与当前 TextPointer 相邻,则不返回任何内容。 同样,仅返回下一个非文本符号的文本。