2010-06-22 26 views
7

में फ़ुटनोट्स को कार्यान्वित करना FlowDocumentPageViewer में FlowDocument सामग्री के लिए फ़ुटनोट प्रदर्शित करने का सबसे अच्छा तरीका क्या होगा?एक WPF फ़्लो डॉक्यूमेंट

मेरा पहला विचार फ्लोट डॉक्यूमेंट के भीतर फुटनोट एंकर के तुरंत बाद फुटनोट की सामग्री का पालन करना था, जिसमें पेजबॉटम पर वर्टिकल एंकर के साथ एक चित्रा के रूप में स्वरूपित फुटनोट सामग्री थी।

यह बहुत अच्छा काम करता है, लेकिन जब पृष्ठ पर कई फुटनोट होते हैं, तो फुटनोट्स को विपरीत क्रम में रखा जाता है, यानी पहले फुटनोट नीचे के रास्ते पर है, इसके बाद के फ़ुटनोट्स इसके ऊपर खड़े हो जाते हैं।

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

एक और चरम दृष्टिकोण रिवर्स में ऐसा करना होगा - नियमित पाठ को वर्टिकलएन्चर के साथ स्टैक्ड आंकड़ों के रूप में सेट करें, और पेजनॉप पर फुटनोट्स प्रवाह करें। हालांकि, अनुच्छेद (जो फुटनोट्स से अधिक लंबे होते हैं) अब पृष्ठों को नहीं बढ़ाएंगे।

मैं अन्य दृष्टिकोणों का प्रयास कैसे कर सकता हूं?

आदर्श रूप में मैं फुटनोट्स को प्रदर्शित करना चाहता हूं क्योंकि वे प्रिंट में दिखाई देंगे (यानी वे पृष्ठ के निचले भाग पर) जो प्रासंगिक हैं), लेकिन मैं अन्य दृष्टिकोणों के लिए खुला हूं।

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

उत्तर

3

मैंने इसे देखते हुए थोड़ी देर बिताई और सहमति व्यक्त की कि ऐसा करने का "अच्छा और आसान" तरीका प्रतीत नहीं होता है।

मैंने फ्लोटर और चित्रा कक्षाओं से अपने स्वयं के रैपर वर्गों को प्राप्त करने का प्रयास किया, लेकिन यह बहुत तेज़ हो जाता है क्योंकि पेजिनेशन बहुत कम है (कम से कम मेरे लिए) काम करने के लिए। इनके साथ समस्या यह है कि चित्रा XAML में माता-पिता के लिए खुद को लुभाने की अनुमति देता है, जबकि फ्लोटर में आपकी सभी अच्छी कार्यक्षमताएं होती हैं - जैसे कि पेजिनेशन - लेकिन इसे कहीं भी लंगर नहीं किया जा सकता है ... वास्तव में कैच 22 का बिट , यहां तक ​​कि .NET 4.0 में भी।

मुझे दो लिंक here और here मिले जो मदद कर सकते हैं। पहली बार पहली नज़र में थोड़ा अप्रासंगिक लग सकता है लेकिन कोड पर एक नज़र डालें और आपको विचार मिलना चाहिए) मैंने कोड के साथ खेला और सामान्य विचार काम करता है। यह DocumentPaginator के चारों ओर एक रैपर वर्ग परिभाषित करता है और इसलिए आपको वास्तविक अंकन को नियंत्रित करने की अनुमति देता है।

उम्मीद है कि वैसे भी थोड़ा सा मदद करता है।

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

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