2012-04-26 9 views
5

में लाइन नंबर से ScrollToVerticalOffset के लिए ऑफ़सेट की गणना करें I सामग्री की एक विशिष्ट पंक्ति में RichTextBox की सामग्री को स्थानांतरित करना चाहते हैं। RichTextBox एम्बेडेड ScrollViewer से विधि ScrollToVerticalOffset प्रदान करता है। विधि एमएसडीएन में प्रलेखित है, लेकिन ऑफसेट नामक पैरामीटर की माप इकाई specified नहीं है। प्रकार double है।WPF RichTextBox

VerticalOffsetTextBox की संपत्ति डिवाइस-स्वतंत्र इकाइयों (प्रति इकाई 1/96 वां इंच) के रूप में प्रलेखित है।

तो मैंने फ़ॉन्ट आकार से ऑफसेट की गणना करने की कोशिश की। फ़ॉन्ट आकार पिक्सल में दिया गया है। परिणामी सूत्र

offset = fontSize * 96/72 * lineNumber; 

लेकिन यह वांछित रेखा के पीछे रास्ता कूदता है। अभी के लिए मैं इस गणना का उपयोग कर रहा हूं:

offset = fontSize * lineNumber; 

क्या यह सही है?

उत्तर

2

यह सच है कि लंबे समय से इस प्रश्न पूछने से गुजरता है, लेकिन अभी भी इसका सही जवाब नहीं मिला है !!

मैं अब इस कोड का इस्तेमाल किया, जो वास्तव में मेरे लिए अच्छा है:

var offset = (lineNumber * (fontSize + 2)) - richTextBox.ActualHeight/2; 
richTextBox.ScrollToVerticalOffset(offset); 

आप एक समाधान इस तरह की तुलना में बेहतर पता है, मेरी मदद करें।

+0

आपकी गणना मेरे लिए अच्छी लगती है। लेकिन मैं इस समय गणना को मान्य करने में सक्षम नहीं हूं। – Christian

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