2012-11-23 17 views
6

Windows Phone 7 uygulamasında metin kaydırma etkinleştirilmiş bir metin kutusu var, kullanıcı tarafından seçilen karakterde satır sayısını nasıl alabilirim? Örneğin, bir metin kutusu şu şekilde gözüküyorsa: "|" ileSeçilen kutu bir Metin Kutusuna nasıl alınır?

test 
text 
bo|x 
is 
here 

; Seçilen karakteri temsil eden satır sayısı 3 olacaktır. Bunu, özellikle metin değiştirildiğinde, herhangi bir zamanda yapmam gerekiyor. Metin kaydırma olmadan bir metin kutusundaki yeni satır sayısını sayabilirdim, ancak bu açıkça farklı bir senaryo.

+3

Neden tam olarak makul bir soru burada indirgenebilir? Bunun nesi var? Sorumluluktan aşağı puan almak yerine biraz yapıcı geribildirim verebilir misiniz? – msbg

cevap

4

yapın:

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

sonuç = Seçili çizgi.

+0

Mükemmel! çok teşekkürler – Quincy

1

sadece aptal bir şekilde:

Bu olay işleyebilir: ManipulationStarted ManipulationCompleted Eğer noktasını bulmak için geri arama args kaynaktan

(x, y) noktası ile kullanıcı, belki de, seçilen koordinatı olan yer.

ve pervane gelen everyline yüksekliğini bilmek - lineHeight

ve kendimi bu anladım bir bölünme

+0

Bu, ancak kullanıcı yalnızca seçimi parmağıyla değiştirdiğinde çalışır. Daha spesifik olmalıydım. – msbg

İlgili konular