रिटेक्टबॉक्स में आरटीएफ से कॉपी करते समय मुझे एक समस्या है
// Not SERIALIZE गुणों "बोल्ड" और "रंग" और "आकार"
सभी कोड:
string ConvertXamlToString (FlowDocument fd) {string format = "@ TAG @ {0}: {1} @ टैग @ "; फ्लो डॉक्यूमेंट एसएस = नया फ़्लो दस्तावेज़ (); के लिए (इंट I = 0; i & lt; fd.Blocks.Count; i ++) {var ब्लॉक = (एफडी। ब्लॉकक्ल्यूशन के रूप में)। एलामेंटआट (आई); यदि (ब्लॉक अनुच्छेद है) {var p = नया पैराग्राफ (); (इंट y = 0; वाई एंड एलटी; (पैराग्राफ) ब्लॉक) .इनलाइन्स.काउंट; y ++) {var इनलाइन = ((अनुच्छेद) ब्लॉक) .इनलाइन। एलेमेंटएट (वाई); यदि (इनलाइन इनलाइन यूआईटीएनेयर है) {var elem = ((इनलाइनउआईकॉन्टेनियर) इनलाइन)। बाल; यदि (एएम फ्लैश कंट्रोल है) {पाठ बॉक्स एमसी = नया पाठ बॉक्स () {टेक्स्ट = स्ट्रिंग.फोर्मेट (प्रारूप, "फ्लैश कंट्रोल", (फ्लैश कंट्रोल के रूप में एएमएम) .Flashp.Source)}; p.Inlines.Add (एमसी); } Else if (elem is MusicControl) {MusicControl mc = नया म्यूजिक कंट्रोल ((Elem musicControl के रूप में) .Path_file); p.Inlines.Add (एमसी); } और यदि (एएमएम छवि है) {छवि एमसी = नई छवि (); छवि अंतिम = (छवि के रूप में elem); कोशिश करें (यदि (आखिरी। सोर्स सिस्टम है। विन्डोज़। मीडिया। इमेजिंग। बिटमैप इमेज) {mc.Source = नया बिटमैप इमेज (नया उरी (((सिस्टम। विन्डोज़। मीडिया। इमेजिंग। बिटमॅप इमेज) (अंतिम। स्रोत))। AbsolutePath)); } Else if (अंतिम। सोर्स सिस्टम है। विन्डोज़। मीडिया। इमेजिंग। बिटमैप इमेज) {mc.Source = नया बिटमैप इमेज (नया उरी (((सिस्टम। विन्डोज। मीडिया। इमेजिंग। बिटमैप इमेज) (अंतिम। स्रोत))। तार())); }} पकड़ {} p.Inlines.Add (mc); } Else {p.Inlines.Add (elem); }} और अगर (इनलाइन चलाना है) {रन आर = (रन के रूप में इनलाइन); स्ट्रिंग rSer = XamlWriter.Save (r); Var inl1 = XamlReader.Parse (rSer); P.Inlines.Add (रन के रूप में inl1); } और अगर (इनलाइन स्पैन) {स्पैन आर = (स्पैन के रूप में इनलाइन); स्ट्रिंग rSer = XamlWriter.Save (r); // NOT वर्गीकृत गुण "बोल्ड" और "रंग" और "आकार" var inl1 = XamlReader.Parse (rSer); P.Inlines.Add (स्पान के रूप में inl1); } Else {}} ss.Blocks.Add (p); }} स्ट्रिंग aaa = XamlWriter.Save (ss); richtextbox.Document.Blocks.Clear (); वस्तु f = XamlReader.Parse (aaa); Richtextbox.Document = च फ़्लो दस्तावेज़ के रूप में; एएए वापसी; }
कोड का मुख्य भाग:
else अगर (इनलाइन चलाना है) {रन आर = (रन के रूप में इनलाइन); स्ट्रिंग rSer = XamlWriter.Save (r); Var inl1 = XamlReader.Parse (rSer); P.Inlines.Add (रन के रूप में inl1); } और अगर (इनलाइन स्पैन) {स्पैन आर = (स्पैन के रूप में इनलाइन); स्ट्रिंग rSer = XamlWriter.Save (r); // NOT वर्गीकृत गुण "बोल्ड" और "रंग" और "आकार" var inl1 = XamlReader.Parse (rSer); P.Inlines.Add (स्पान के रूप में inl1); }
यदि आप मैन्युअल रूप से सबकुछ दर्ज करते हैं, तो सभी ठीक हैं। मैं यह कैसे तय करूँ?
हम्म, अच्छी तरह से बोल्ड और आकार हैं ' टी गुणों जैसे, वे अवधि
के डेरिवेटिव हैं, आपको अपने Span
की Inlines
संपत्ति को बनाए रखने के लिए व्यक्तिगत रूप से पार्स करने की आवश्यकता हो सकती है वे
Comments
Post a Comment