2012-04-11 8 views
7

मैं यह देखने का प्रयास कर रहा हूं कि IWpfTextView में दृश्यमान रेखाएं कैसे दृश्यमान रेखाओं के आधार पर व्यूपोर्ट और/या टेक्स्ट एडॉर्नमेंट डालने के लिए हैं।ITrackingPoint, ITrackingSpan, स्नैपशॉटपॉइंट, स्नैपशॉटस्पैन, ITextViewLine और उपयोग कब करें के बीच क्या अंतर है?

ऐसा लगता है कि ये 4 कम से कम स्पैन के किसी भी तरीके से शामिल हैं। और यह सुनिश्चित करने के लिए कि मैं समझता हूं, स्पैन टेक्स्टव्यू में वर्णों की एक श्रृंखला है?

+0

ठीक है, मेरे अपने अपडेट में। – Chris

+1

वास्तव में अपडेट करने के लिए भूल गए। 1. टेक्स्ट व्यू लाइनों में नहीं सोचा जाता है। यह रूपरेखा के कारण है, शब्द लपेटें, आदि जो दृश्य बफर से टेक्स्टबफर को अलग करता है। 2. स्नैपशॉटस्पैन बनाम स्नैपशॉटपॉइंट - अवधि वर्णों की एक स्ट्रिंग का प्रतिनिधित्व करती है। प्वाइंट, एक चरित्र। 3. TrackingPoint बनाम TrackingSpan। व्यूपोर्ट में स्थिति निर्धारित करने के लिए उपयोग किए जाने के अलावा, अन्य बिंदु और अवधि के समान। मुझे लगता है कि मैं इन पर सही हूं। या कम से कम उस तरह से चल रहा प्रतीत होता है। – Chris

उत्तर

6

IWpfTextView.TextViewLines दृश्यमान लाइनों का संग्रह है। कुछ मामलों में पहली और आखिरी पंक्ति छिपी या आंशिक रूप से दिखाई दे सकती है (लेकिन दूसरी और दूसरी-से-अंतिम पंक्ति हमेशा पूरी तरह से दिखाई देनी चाहिए)। पूरी तरह से दृश्यमान लाइनों का संग्रह प्राप्त करने के लिए आप IWpfTextView.TextViewLines.FirstVisibleLine और IWpfTextView.TextViewLines.LastVisibleLine का उपयोग कर सकते हैं, या ITextViewLine.VisibilityState == VisibilityState.FullyVisible द्वारा संग्रह फ़िल्टर कर सकते हैं।

Span एक प्रारंभ स्थिति और लंबाई को लपेटने के लिए एक संरचना है लेकिन इसमें वास्तविक पाठ नहीं है। विभिन्न प्रयोजनों के लिए वीएस संपादक में कई प्रकार के स्पैन हैं, उदाहरण के लिए SnapshotSpanITextSnapshot का एक विस्तार है, जो एक प्रारंभ स्थिति, एक लंबाई और स्नैपशॉट संग्रहीत करता है।

संपादित करें:

खेद है कि मैं शीर्षक में प्रश्न याद किया।

Point एक स्थिति को संदर्भित करता है और Span एक सीमा को संदर्भित करता है। अधिकांश वीएस संपादक एपीआई जो पैरामीटर के रूप में एक लेते हैं, दूसरे के लिए ओवरलोड होते हैं।

ITrackingPoint और ITrackingSpanITextBuffer से बाहर हैं। "ट्रैकिंग" का अर्थ है कि टेक्स्ट बफर परिवर्तन के रूप में वे ऑफ़सेट/बढ़ते/घटते हैं। वे स्नैपशॉट अज्ञेयवादी हैं।

SnapshotPoint और SnapshotSpanITextSnapshot से बाहर हैं। वे ITextSnapshot से बंधे हैं और अपरिवर्तनीय हैं।

ITextViewLine प्रदर्शन के लिए प्रारूपित रेखा है। आम तौर पर आपको इसे बदलने की आवश्यकता नहीं होती है, केवल Height या VisibilityState जैसे दृश्य जानकारी प्राप्त करने की आवश्यकता होती है।

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