wpf

2010-08-12 9 views
6

में कस्टम टेक्स्ट एलीमेंट्स के साथ फ़्लो डॉक्यूमेंट का विस्तार करना मैं स्पैन और रन के अपने डेरिवेटिव्स बनाकर फ़्लो डॉक्यूमेंट की कार्यक्षमता को विस्तारित करना चाहता हूं।wpf

क्या यह संभव है और किसी को भी कोई उदाहरण मिला है?

उत्तर

1

माइक्रोसॉफ्ट ने अपने दस्तावेज़ वर्गों में से एक के अंदर एक कस्टम TextElement प्रस्तुत करने के लिए आवश्यक विधियों का खुलासा नहीं किया। यदि आप Run या Span के लिए कोड देखते हैं तो कोई वास्तविक प्रतिपादन कोड नहीं है। प्रतिपादन UIElement में विभिन्न आंतरिक वर्गों (जैसे फिक्स्डटेक्स्टबिल्डर) द्वारा बनाया गया है।

FrameworkContentElement पर

MSDN के नोट्स से:

FrameworkContentElement अभी तक अपनी ही प्रतिपादन व्यवहार को परिभाषित नहीं करता; कोड या मार्कअप में एक वास्तविक फ्रेमवर्ककंटेंट एलिमेंट क्लास इंस्टेंस को तत्काल करना संभव है लेकिन WPF एप्लिकेशन उपयोगकर्ता इंटरफ़ेस (UI) में कुछ भी प्रदर्शित नहीं करता है। रेंडरिंग तर्क उन वर्गों द्वारा प्रदान किया जाना चाहिए जो फ्रेमवर्क सामग्री को उनके तत्व मॉडल के हिस्से के रूप में, या फ्रेमवर्ककंटेंट एलिमेंट व्युत्पन्न कक्षाओं में भाग लेते हैं।

सभी नहीं खोया है, कस्टम ब्लॉक और इनलाइन तत्वों प्रतिपादन के लिए समर्थन BlockUIContainer और InlineUIContainer कक्षाओं के माध्यम से प्रदान की जाती है। फिर आप एक निम्न स्तर UIElement बना सकते हैं जिसे निश्चित या प्रवाह दस्तावेज़ के अंदर होस्ट किया जाएगा, या उच्च स्तरीय WPF तत्वों का उपयोग करें।

+0

मैं एक फ्लॉइड दस्तावेज़ के लिए एमवीवीएम-पैटर्न लागू करने की कोशिश कर रहा हूं। मैं डेटाबाइंडिंग के साथ टेक्स्टबॉक्स पूरा कर सकता हूं लेकिन ब्लॉकयूकॉन्टेनर के साथ समस्याएं हैं ... – DrMarbuse

1

किस प्रकार की एक्स्टेंसिबिलिटी की आवश्यकता है? आमतौर पर जब किसी भी WPF नियंत्रण के डिफ़ॉल्ट व्यवहार को बदलने की बात आती है, जिसे विरासत के माध्यम से बदला नहीं जा सकता है, तो हम Attached Properties का उपयोग करते हैं।

Here is an exampleSpan तत्व, जो वस्तुओं का संग्रह करने के लिए बाध्य है। संलग्न गुणों के साथ एक ही चाल एक पाठ में Run बाध्यकारी के साथ मदद करता है।

उत्तर भी FlowDocument उपयोग संदर्भ पर निर्भर करेगा। यदि यह केवल-पढ़ने योग्य मोड में है, BlockUIContainer और InlineUIContainer कक्षाएं आपके मित्र हैं। लेकिन अगर FlowDocumentRichTextBox के अंदर है, तो आप पूरे डब्ल्यूपीएफ टेक्स्ट सपोर्ट इंफ्रास्ट्रक्चर के साथ उन्हें नफरत और शाप देंगे (प्रतिलिपि/पेस्ट, पूर्ववत/फिर से, आदि के साथ समस्याएं)।

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

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