c# - How do I get the characters for context-shaped input in a complex script? -
कुछ RightToLeft भाषाओं में (अरबी, फ़ारसी, उर्दू, आदि) प्रत्येक पत्र अलग हो सकते हैं आकार। एक पृथक रूप, प्रारंभिक रूप और मध्य रूप है (आप इसे किसी भी यूनिकोड फ़ॉन्ट के लिए खिड़कियों के वर्ण मानचित्र पर पा सकते हैं)।
कल्पना कीजिए कि उपयोगकर्ता को उस सटीक वर्ण की आवश्यकता है जो उपयोगकर्ता को एक टेक्स्ट बॉक्स, डिफ़ॉल्ट रूप से, जब आप स्ट्रिंग को चारअरेरे में कनवर्ट करते हैं, तो वह प्रत्येक वर्ण को पृथक रूप में बदल देगा।
(क्योंकि जब उपयोगकर्ता कुंजीपटल द्वारा वर्णों को दर्ज करते हैं, यह पृथक रूप में होता है और जब यह स्क्रीन पर प्रदर्शित होता है, तो इसे उचित प्रारूप में कनवर्ट किया जाएगा, यह सिर्फ एक अनुमान है। यदि आप सटीक वर्ण कोड का उपयोग करके स्ट्रिंग करते हैं, तो यह उचित सरणी उत्पन्न करेगा)।
मेरा सवाल है, हम उस स्ट्रिंग के रूप को कैसे प्राप्त कर सकते हैं, जो कि दिखाया गया है पाठ बॉक्स में।
यदि कोई रास्ता नहीं है .नेट तो इसका मतलब है कि मुझे इस T_T
जटिल स्क्रिप्ट के लिए प्रासंगिक आकार देने करने के लिए Windows का उपयोग करता है (जो एल-टू-आर पर भी लागू हो सकता है आर-टू-एल भाषाएं)। एक पाठ बॉक्स में प्रदर्शित पाठ, यूनीसैच में वर्णों को खिला जाने के बाद ग्लिफ़ जानकारी पर आधारित है। यद्यपि यूनिकोड मानक प्रत्येक चश्मे के अलग-अलग, प्रारंभिक, औसत दर्जे और अंतिम रूपों के लिए कोड बिंदु निर्धारित करता है, न कि सभी फोंट जरूरी उनको समर्थन करते हैं लेकिन उनके पास पूर्व-आकार के ग्लिफ़ हो सकते हैं या ग्लिफ़-यूनिसेक्च के संयोजन का उपयोग कर आकार देने वाला इंजन का उपयोग कर सकते हैं फ़ॉन्ट के सेमीप के आधार पर, जो कि ग्लिफ़ (एस) का उपयोग करने के लिए विंडोज भाषा पैक निर्धारित करता है।
[DllImport ("user32.dll", Charset = CharSet.Unicode, SetLastError = सच)] सार्वजनिक स्थिर extern int DrawTextExW (HandleRef एचडीसी, स्ट्रिंग lpszString, int nCount, रेफरीर आरटीईटी एलपीआरएक्ट, इंट एनफोमेट, [इन, आउट] DRAWTEXTPARAMS एलपीडीपामार); [स्ट्रक्चर लेआउट (लेआउटकिंड। सिक्विक)] सार्वजनिक संरचना RECT {सार्वजनिक एएनए छोड़ दिया; सार्वजनिक एट शीर्ष; सार्वजनिक int सही; सार्वजनिक अंतर नीचे; } [स्ट्रक्चर लेआउट (लेआउटकिंड। सिक्योरिटी)] सार्वजनिक वर्ग ड्राफ्ट टेक्टेमम्स {सार्वजनिक इंट iTabLength; सार्वजनिक इंट iLeftMargin; सार्वजनिक int iRightMargin; सार्वजनिक int uiLengthDrawn; }
Comments
Post a Comment