C# 如何在文本框中获取所选行?

C# 如何在文本框中获取所选行?,c#,windows-phone-7,textbox,windows-phone,word-wrap,C#,Windows Phone 7,Textbox,Windows Phone,Word Wrap,我在Windows Phone 7应用程序中启用了文本换行的文本框,如何获取用户选择的字符的行数?例如,如果一个文本框看起来像这样: test text bo|x is here ,用“|”表示所选字符,行数为3。我需要在任何时候这样做,尤其是当文本发生变化时。我可以在没有文本换行的情况下计算文本框中的换行数,但这显然是另一种情况 只有一种愚蠢的方式: 您可以处理以下事件:操纵开始操纵完成 从回调参数可以找到点(x,y)用户点,可能是坐标 在选定的地点 你可以通过道具知道每一条线的高度——线的

我在Windows Phone 7应用程序中启用了文本换行的文本框,如何获取用户选择的字符的行数?例如,如果一个文本框看起来像这样:

test
text
bo|x
is
here
,用“|”表示所选字符,行数为3。我需要在任何时候这样做,尤其是当文本发生变化时。我可以在没有文本换行的情况下计算文本框中的换行数,但这显然是另一种情况

只有一种愚蠢的方式:

您可以处理以下事件:操纵开始操纵完成

从回调参数可以找到点(x,y)用户点,可能是坐标 在选定的地点

你可以通过道具知道每一条线的高度——线的高度


然后进行除法

我自己发现了这一点:

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

结果=所选行。

为什么一个完全合理的问题会在这里被降级?怎么了?你能给我一些建设性的反馈,而不是仅仅降低我的问题的等级吗?这是有效的,但只有当用户用手指改变选择时。我应该说得更具体些。