/ / Wpf रिचटेक्स्टबॉक्स कस्टम सत्यापन - wpf, flowdocument

Wpf Richttextbox कस्टम सत्यापन - wpf, flowdocument

मुझे WPD रिचटेक्स्टबॉक्स में कुछ उन्नत सत्यापन की आवश्यकता है, जो फ्लडडेंड्रिसेस के लिए है, जैसे कुछ:

a) स्वरूपण केवल पूरे अनुच्छेद पर लागू किया जा सकता है बी) किसी भी स्पैन की अनुमति नहीं है ग) इन नियमों को क्लिपबोर्ड से चिपकाए गए पाठ के लिए भी लागू करने की आवश्यकता है।

यह करने के लिए सबसे अच्छा तरीका क्या है?

उत्तर:

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

इवेंट हैंडलर जोड़ें textchanged घटना और लागू करें जो भी स्वरूपण आपको वहां करने की आवश्यकता है। टेक्स्ट बॉक्स में टेक्स्ट को कैसे बदला जाए (क्लिपबोर्ड के माध्यम से चिपकाया गया / कीबोर्ड से दर्ज किया गया), इस घटना से कोई फर्क नहीं पड़ेगा।

<RichTextbox x:Name="myTextbox" TextChanged="myTextbox_TextChanged"/>

private void myTextbox_TextChanged(object sender, EventArgs e)
{
//Apply formatting here
}

संपादित करें: वैकल्पिक रूप से यदि आप पाठ को किसी प्रकार के डेटा स्रोत के लिए बाध्य करते हैं, तो आप बाइंडिंग पर डेटा सत्यापन को लागू कर सकते हैं जो टेक्स्टबॉक्स को उजागर करेगा और यह सुनिश्चित करेगा कि उपयोगकर्ता वांछित इनपुट में प्रवेश करते हैं।

 <RichTextbox x:Name="myTextbox" Text="{Binding TextSource, ValidatesOnExceptions=True}"/>

TextSource प्रॉपर्टी के सेटर में आप अपवाद छोड़ देते हैं यदि दर्ज किया गया डेटा आपकी आवश्यकताओं को पूरा नहीं करता है।