विंडोज-स्टोर-ऐप रिचएडिटबॉक्स मार्कडाउन हाइलाइटिंग - सी #, माइक्रोसॉफ्ट-मेट्रो, मार्कडाउन, समृद्ध-टेक्स्ट-एडिटर, विंडोज-स्टोर-एप्स

फिलहाल मैं विंडोज़ में आने की कोशिश कर रहा हूंस्टोर ऐप डेवलपमेंट और मैं "कुछ बिंदु पर फंस गया हूँ। मैं टेक्स्ट इनपुट के कुछ हिस्सों को हाइलाइट करने के लिए स्टैक ओवरफ्लो पर एक "मार्कडाउन भाषा" की तरह कार्यान्वित करना चाहता हूं। इसके अलावा मैं उपयोगकर्ता को अपने पाठ पर विभिन्न फ़ॉन्ट रंगों का उपयोग करने की क्षमता देना चाहता हूं। RichEditBox इस कार्य के लिए आदर्श नियंत्रण प्रतीत होता है, लेकिन मुझे नहीं पता कि फ्लाई पर मार्कअप दर्ज करने का तरीका कैसा है। उदाहरण के लिए जब उपयोगकर्ता प्रवेश करता है **Test** पाठ को बदलना चाहिए परीक्षा हाथोंहाथ।

मैंने "TextChanged" ईवेंट को सुनकर और उपयोगकर्ता को प्रवेश करने पर यह देखने का प्रयास किया है **। यदि यह मामला है और यदि वह अनुक्रम में प्रवेश करता है ** पहले से ही एक बार पहले, मैं "सेटिंग कर रहा हूँबोल्ड में दूसरे (करीबी मार्कर) एनोटेशन की शुरुआत में पहली एनोटेशन अनुक्रम (स्टार्ट मार्कर) के अंत से टेक्स्ट रेंज का चरित्र प्रारूप।

लेकिन यह समाधान बहुत तेज़ और गंदे लगते हैं।

मेरा दूसरा विचार वेबव्यू नियंत्रण का उपयोग "मार्कडाउन शार्प" के साथ प्रीप्रोसेसिंग के बाद टेक्स्ट को प्रस्तुत करने के लिए करना था। लेकिन फिर उपयोगकर्ता पाठ संपादित करने में सक्षम नहीं था।

इसलिए मुझे कुछ सलाह या टिप प्राप्त करने की आवश्यकता हैइस समस्या के करीब आ रहा है। मैंने एक कस्टम RichEditBox नियंत्रण लिखने में भी देखा, लेकिन मुझे कस्टम नियंत्रण विकास में कोई अनुभव नहीं है और अब विंडोज 8 विकास के लिए वेब पर कई संसाधन नहीं हैं।

अग्रिम में धन्यवाद।

उत्तर:

जवाब के लिए 0 № 1

जैसा कि मैंने इसे देखा है, आपकी समस्या यह है कि आप मार्कडाउन सिंटैक्स के आधार पर "स्रोत" को संपादित करना चाहते हैं और प्रारूपित परिणाम को उसी स्थान पर दिखाना चाहते हैं। आप कैसे वापस आ जाएंगे परीक्षा नियमित रूप से, जब तक तारांकन खत्म हो जाते हैं? अगर उत्तर "बटन का उपयोग कर रहा है" तो बटन को पहले स्थान पर बोल्ड करने के लिए क्यों न करें?

हालांकि, आप एक हाइब्रिड चीज कर सकते हैं: मार्कडाउन मार्कअप को बनाए रखते हुए स्रोत टेक्स्ट में स्वरूपण लागू करें (सुनिश्चित नहीं है कि यह सभी मार्कडाउन चाल के लिए पूरी तरह से करने योग्य है)। अर्थात्, **Test** जैसे स्रोत में देखेंगे **Test**। अंतिम, प्रारूपित परिणाम के लिए आप एक अलग दृश्य का उपयोग करेंगे, जैसे RichTextBlock।

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


संबंधित सवाल
सबसे लोकप्रिय