2011-03-02 10 views
35

बस सोच रहा है कि किसी ने इसे अधिक उपयोगी बनाने के लिए WPF DocumentViewer में हैक करने की कोशिश की है या नहीं। मैंने लगभग एक हफ्ते पहले ही इस नियंत्रण के लिए अधिक शक्तिशाली एपीआई बनाने की कोशिश की है, जिस पर मैंने प्रतिबिंब का उपयोग करके निकाला है।wpf DocumentViewer - GlyphRun द्वारा ITextPointer प्राप्त करें और इसके विपरीत

हर कोई जानता है कि प्रतिबिंब के माध्यम से दस्तावेज़ दर्शक से चयनित टेक्स्ट कैसे प्राप्त करें लेकिन मेरा कार्य अधिक जटिल है। Selected text में End और Start गुण हैं जो ITextPointers लौटाते हैं। इसके अलावा मेरे पास this code का उपयोग करके निकाले गए GlyphRuns का संग्रह है। और अब अंततः मैं यह जानना चाहता हूं कि GlyphRun में चयन शुरू हो गया है।

तो मैं जानना चाहता हूं कि ITextPointers को GlyphRuns और इसके विपरीत कैसे परिवर्तित करें। मैं समझता हूं कि उनके पास 1: 1 संबंध नहीं है। बंद एपीआई के साथ यह नियंत्रण और प्रतिबिंब में बिताए गए पिछले हफ्ते मुझे अच्छी तरह से सोने नहीं देता है। मुझे उम्मीद है कि किसी ने कोड कोड के पहले इसे देखने या देखने की कोशिश की है और इन जंगलों के माध्यम से मुझे मार्गदर्शन करने में सक्षम हो जाएगा।

+2

जैसा कि आपने कहा था, कोई 1: 1 संबंध नहीं है। इसके अलावा, ग्लाइफ्रून केवल वस्तु से विरासत में आता है। हालांकि, इसमें उल्लेखनीय तरीके हैं। (मैंने उनमें से किसी को भी कोशिश नहीं की है।) उदाहरण के लिए, ग्लिफ्रुन। कॉम्प्यूट एलाइनमेंटबॉक्स() एक रेक्ट देता है, जिसमें स्थान डेटा हो सकता है। मुझे लगता है कि यह कुंजी है ... ग्लाइफ्रुन और टेक्स्ट पॉइंटर स्थान डेटा से संबंधित है। –

+1

क्या आप हमारे साथ कुछ कोड साझा कर सकते हैं ताकि हम कुछ कोशिश कर सकें –

+2

@HBMAAM, वर्ष के दौरान मुझे कम या ज्यादा काम करने वाला समाधान मिला, मैं इसे यहां पोस्ट करने जा रहा हूं, लेकिन इसमें कुछ समय लगेगा। – Snowbear

उत्तर

1

मैं अनुशंसा करता हूं कि आप इस दृष्टिकोण को छोड़ दें। इस तरह के निजी प्रतिबिंबों को करने से ऐसा कुछ नहीं है जो आपको उत्पादन कोड के आधार पर होना चाहिए, कुछ संदर्भों में इसका बहुत भंगुर और निषिद्ध वर्जित है। स्पष्ट रूप से, आप www.infragistics.com

या यदि यह कोई विकल्प नहीं है तो आप संभवतया अपना नियंत्रण बना सकते हैं, जिससे आप इसे प्राप्त करने में कितना समय लगेगा काम करने के लिए।

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