2012-11-23 21 views
6

मेरे पास अपने विंडोज फोन 7 ऐप में टेक्स्ट रैपिंग सक्षम टेक्स्ट बॉक्स है, मैं उपयोगकर्ता द्वारा चुने गए चरित्र पर लाइन गिनती कैसे प्राप्त करूं? उदाहरण के लिए, यदि कोई टेक्स्ट बॉक्स ऐसा दिखाई देता है:टेक्स्ट बॉक्स में चयनित लाइन कैसे प्राप्त करें?

test 
text 
bo|x 
is 
here 

, "|" के साथ चयनित चरित्र का प्रतिनिधित्व करते हुए, रेखा गणना 3 होगी। मुझे समय पर किसी भी समय ऐसा करने की ज़रूरत है, खासकर जब पाठ बदल जाता है। मैं टेक्स्ट रैपिंग के बिना टेक्स्ट बॉक्स में न्यूलाइन की संख्या गिन सकता हूं, लेकिन यह स्पष्ट रूप से एक अलग परिदृश्य है।

+3

यहां एक बिल्कुल उचित प्रश्न क्यों नीचे दिया जाएगा? इसके साथ गलत क्या है? क्या आप कृपया मेरे प्रश्न को नीचे रेटिंग करने के बजाय कुछ रचनात्मक प्रतिक्रिया दे सकते हैं? – msbg

उत्तर

4

मैं इस बाहर अपने आप को लगा कार्य करें:

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

परिणाम = चयनित लाइन।

+0

उत्कृष्ट! बहुत बहुत धन्यवाद – Quincy

1

केवल एक मूर्ख रास्ता:

आप इन घटना संभाल कर सकते हैं: ManipulationStarted ManipulationCompleted

कॉलबैक आर्ग आप बिंदु मिल सकता है से (एक्स, वाई) उपयोगकर्ता बिंदु, हो सकता है यह चयनित की समन्वय है जगह।

और आप प्रोप से everyline की ऊंचाई पता है - lineHeight

और एक प्रभाग

+0

यह काम करता है, लेकिन केवल तभी जब उपयोगकर्ता अपनी उंगली के साथ चयन बदलता है। मुझे और अधिक विशिष्ट होना चाहिए। – msbg

संबंधित मुद्दे

 संबंधित मुद्दे