我在我的 Windows Phone 7 应用程序中启用了文本换行的文本框,如何获取用户选择的字符的行数?例如,如果一个文本框看起来像这样:
test
text
bo|x
is
here
, 带“|” 表示所选字符,行数将为 3。我需要在任何时间点执行此操作,尤其是在更改文本时。我可以在没有文本换行的情况下计算文本框中的换行符数量,但这显然是不同的场景。
我在我的 Windows Phone 7 应用程序中启用了文本换行的文本框,如何获取用户选择的字符的行数?例如,如果一个文本框看起来像这样:
test
text
bo|x
is
here
, 带“|” 表示所选字符,行数将为 3。我需要在任何时间点执行此操作,尤其是在更改文本时。我可以在没有文本换行的情况下计算文本框中的换行符数量,但这显然是不同的场景。
我自己想出了这个:
Rect rec = textbox.GetRectFromCharacterIndex(textbox.SelectionStart);
double rectop = rec.Top;
double lineheight = text.LineHeight;
int result = (int)(rectop / lineheight + 1);
结果 = 选定的行。
只有一个愚蠢的方式:
你可以处理这些事件:ManipulationStarted ManipulationCompleted
从回调 args 中可以找到 point(x,y) 用户点,可能是所选地点的坐标。
并且你从道具知道每一行的高度——lineHeight
并做一个除法