2012-11-23 14 views
6

Ich habe ein Textfeld mit Textumbruch in meiner Windows Phone 7 App aktiviert. Wie erhalte ich die Zeilenanzahl bei dem vom Benutzer ausgewählten Zeichen? Zum Beispiel, wenn ein Textfeld sah so aus:Wie bekomme ich die ausgewählte Zeile in einem Textfeld?

, mit "|" Wenn Sie das ausgewählte Zeichen darstellen, wäre die Zeilenzahl 3. Ich muss dies zu jedem Zeitpunkt tun, insbesondere wenn der Text geändert wird. Ich könnte die Anzahl der Zeilenumbrüche in einem Textfeld ohne Textumbruch zählen, aber dies ist eindeutig ein anderes Szenario.

+3

Warum sollte eine vollkommen vernünftige Frage hier heruntergestuft werden? Was stimmt damit nicht? Könnten Sie bitte etwas konstruktives Feedback geben, anstatt nur meine Frage zu bewerten? – msbg

Antwort

4

ich das selbst herausgefunden:

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

Ergebnis = die ausgewählte Zeile.

+0

ausgezeichnet! vielen Dank – Quincy

1

nur eine dumme Art und Weise:

Sie diese Veranstaltung umgehen kann: Manipulationmanipulation

Von dem Rückruf args Sie den Punkt finden können (x, y) Benutzer Punkt, vielleicht ist es die Koordinate ausgewählten Ort.

und Sie wissen, die Höhe von Everyline von der Stütze - lineheight

und tun eine Abteilung

+0

Dies funktioniert, aber nur, wenn der Benutzer die Auswahl mit dem Finger ändert. Ich hätte genauer sein sollen. – msbg

Verwandte Themen