2011-12-30 30 views
5

मैं एक विजुअल स्टूडियो एक्सटेंशन लिख रहा हूं जहां मैं लाइन सजावट बना रहा हूं जिसे उपयोगकर्ता आकार कोड का आकार बदलते समय आकार बदलने की आवश्यकता है। अर्थात। जब उपयोगकर्ता विजुअल स्टूडियो की विंडो चौड़ाई का आकार बदलता है, तो मैं सजावट की चौड़ाई और ऊंचाई दोनों को संशोधित करता हूं। मैं IWpfTextView.LayoutChanged घटना का संचालन कर रहा हूं और मैं वहां अपने सजावट का आकार बदल रहा हूं। इसके नीचे की रेखाओं के साथ सजावट को ओवरलैप करने से बचने के लिए, मैंने सजावट के आकार को समायोजित करने के लिए लाइन की ऊंचाई को बढ़ाने के लिए ILineTransformSource.GetLineTransform भी लागू किया।एक लाइन सजावट आयाम में परिवर्तन के लिए एक वीएस एक्सटेंशन में ILineTransformSource.GetLineTransform को कॉल करने के लिए आप कैसे मजबूर करते हैं?

हालांकि, जब मैं श्रंगार के आयाम बदल (जब IWpfTextView.LayoutChanged घटना से निपटने के) मैं आकार बदलने के लिए लाइन को बदलने मेरी ILineTransformSource.GetLineTransform कार्य करने के लिए नहीं कॉल प्राप्त कर रहा हूँ। यह सजावट को नीचे की रेखाओं को ओवरलैप कर देता है। मुझे ILineTransformSource.GetLineTransform पर कॉल करने का कोई भी तरीका नहीं मिल रहा है। (हालांकि, उपयोगकर्ता दृश्य स्क्रॉल करता है, तो, मैं इन कॉल मिलता है। लेकिन, मैं खिड़की स्क्रॉल करने के लिए उपयोगकर्ता के लिए मजबूर करने के लिए एक दृश्य गड़बड़ ठीक करने के लिए है करने के लिए नहीं करना चाहती।)

किसी को भी एक तरह से पता है मेरे ILineTransformSource.GetLineTransform पर कॉल करने के लिए विजुअल स्टूडियो को मजबूर करने के लिए ताकि जब मेरे सजावट ऊंचाई में बदल जाए तो मैं लाइन ट्रांसफॉर्म का आकार बदल सकता हूं?

+0

क्या आपको यह पता चला? मुझे अपने सजावट के लिए भी जगह बनाने की जरूरत है। – jwize

उत्तर

2

IWpfTextView.DisplayTextLineContainingBufferPosition विधि को कॉल करने का प्रयास करें - यह GetLineTransform कॉल को भी मजबूर करेगा।

+0

क्या आप मुझे यह विचार दे सकते हैं कि इन घटनाओं को कैप्चर करने के लिए मैं कक्षा कैसे रखूंगा? मैं एमईएफ के लिए नया हूं इसलिए मुझे यहां कुछ समझने की जरूरत नहीं है? – jwize