6

Windows Phone 7 アプリでテキスト ラッピングを有効にしたテキスト ボックスを使用していますが、ユーザーが選択した文字の行数を取得するにはどうすればよいですか? たとえば、テキスト ボックスの場合は次のようになります。

test
text
bo|x
is
here

、「|」付き 選択した文字を表す場合、行数は 3 になります。これはいつでも、特にテキストが変更されたときに行う必要があります。テキストの折り返しなしでテキスト ボックス内の改行の数を数えることはできますが、これは明らかに別のシナリオです。

4

2 に答える 2

4

私はこれを自分で理解しました:

Rect rec = textbox.GetRectFromCharacterIndex(textbox.SelectionStart);
double rectop = rec.Top;
double lineheight = text.LineHeight;
int result = (int)(rectop / lineheight + 1);

結果 = 選択した行。

于 2012-11-23T03:00:33.843 に答える
1

愚かな方法のみ:

これらのイベントを処理できます:ManipulationStarted ManipulationCompleted

コールバック引数から、point(x,y) ユーザー ポイントを見つけることができます。選択した場所の座標である可能性があります。

そして、小道具からのすべての行の高さを知っています —— lineHeight

そして割り算をする

于 2012-11-23T02:42:05.257 に答える