WPFコードビハインドを使用してtextareaからテキストを抽出するのに問題があります。
例:ロンドンの晴れた日
カーソルが[d*ay]に設定されている場合は、日を返す必要があります。*カーソル用。
どんな助けでもありがたいです。
これはうまくいくようですが、キャレットが空白の真ん中にあるときにどのように動作させたいのかわかりません。そのままで、基本的にキャレットに触れている最も近いトークンを返します。たとえば、「Sunny day in London」という句には、「Sunny」、「day」、「in」、「London」の 4 つのトークンがあります。
string selection;
if (txtBox.Text.Length > 0)
{
int startIndex = 0;
for (int i = txtBox.CaretIndex - 1; i >= 0; i--)
{
if (String.IsNullOrWhiteSpace(txtBox.Text[i].ToString()))
{
startIndex = i;
break;
}
}
int length = txtBox.Text.Length - startIndex;
for (int i = startIndex; startIndex + i <= txtBox.Text.Length - 1; i++)
{
if (String.IsNullOrWhiteSpace(txtBox.Text[startIndex + i].ToString()))
{
length = i;
break;
}
}
selection = txtBox.Text.Substring(startIndex, length);
}
else
{
selection = "";
}