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 値の 1 つ。
戻り値
指定した論理方向の隣接するテキストを含む文字列。隣接するテキストが見つからない場合は Empty。
例
次の例では、このメソッドの使用方法を示します。 この例では、GetTextInRun メソッドを使用して単純なテキスト抽出器を実装します。 このメソッドは、指定された 2 つの TextPointer インスタンス間のすべてのテキストの文字列連結を返します。
この例を使用して 2 つの 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 値の 1 つ。
- textBuffer
- Char[]
任意のテキストがコピーされるバッファー。
- startIndex
- Int32
コピーしたテキストの書き込みを開始する textBuffer
へのインデックス。
- count
- Int32
コピーする最大文字数。
戻り値
実際に textBuffer
にコピーされた文字数。
例外
startIndex
が 0 未満か、textBuffer
の Length プロパティより大きいです。
-又は-
count
が 0 未満か、textBuffer
(textBuffer
.Length - startIndex
) の残りの領域より大きい値です。
注釈
このメソッドは、テキストの中断のない実行のみを返します。 Text 以外のシンボルの種類が、指定した方向の現在の TextPointer に隣接している場合、何も返されません。 同様に、テキストは次の非テキスト記号までしか返されません。
こちらもご覧ください
適用対象
.NET