2011-08-12 12 views
7

मेरे पास एक स्वरूपित टेक्स्ट आइटम है। मेरे पास फ्लोडायरेक्शन को राइट टॉफ्ट पर सेट किया गया है, और मुझे यकीन नहीं है कि यह कैसे काम करता है। यह वास्तव में असंगत रूप से मेरे तारों को बदलता है।डब्ल्यूपीएफ: FlowDirection.RightToLeft एक स्ट्रिंग कैसे बदलता है?

मैंने कल्पना की कि यह केवल एक स्ट्रिंग लेगा, और इसे पीछे की ओर प्रदर्शित करेगा (या तो पात्रों द्वारा, या शब्दों के द्वारा), लेकिन परीक्षण में यह डरावनी चीजें करता है।

============================================== ====

उदाहरण,

the string "90%", is displayed as "%90" 

क्यों% चिह्न शुरू करने के लिए अंत से जाता है?

the string "12 34 56 this is my (string)" 
is displayed as "(this is my (string 56 34 12" 

संख्याएं अंत तक क्यों जाती हैं, और एक ब्रैकेट शुरुआत और स्विच दिशा में जाता है?

the string "this is a string" 
is displayed as "this is a string" 

इस मामले में कुछ भी क्यों नहीं होता ??

============================================== ====

मेरी formattedText इस तरह दिखता है:

FormattedText sectionNum = new FormattedText(
    sectNum, 
    CultureInfo.CurrentCulture, 
    FlowDirection.RightToLeft, 
    new Typeface("Verdana"), 
    14, 
    Brushes.Black); 
context.DrawText(sectionNum, new Point(790 - 96, 20)); 

किसी को भी पता है कि क्या हो रहा है? मुझे प्रत्येक स्ट्रिंग को प्रदर्शित करने में सक्षम होने की आवश्यकता है ताकि जब यह राइट टॉफ़्ट पर सेट हो, तो यह वामटॉइट के समान ही पढ़ता है।

धन्यवाद!

उत्तर

2

टेक्स्टइन्फो के पास फ़्लोडायरेक्शन है और यह डब्ल्यूपीएफ फ्लोडायरेक्शन को ओवरराइड करता है।

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

आपके उदाहरणों में कंपिलर अंग्रेजी अक्षरों के बारे में जानता है और "बाएं से दाएं" दिशा का उपयोग करता है, लेकिन रिक्त स्थान और संख्याओं के साथ पागल हो जाता है।

Here पुस्तक में अच्छे हिस्से के लिंक के साथ एक ही सवाल है।

+0

अंततः मैं लेख पढ़ने के लिए चारों ओर मिल गया। यह वास्तव में मेरी समस्या को ठीक करने का तरीका नहीं बताता है ... क्या कोई वास्तविक समाधान नहीं है? – Toadums

+0

मुझे समझ में नहीं आता कि आप क्या चाहते हैं। यदि आप इसे मैन्युअल रूप से करना चाहिए, तो स्ट्रिंग को रिवर्स करना चाहते हैं, यहां स्थिर फ़ंक्शन का उपयोग करके बेहतर http://www.csharp411.com/c-string-tips/ – Artru

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