2012-01-09 13 views
6

वर्तमान में, यदि मेरे पास फ़ॉन्ट आकार 200 के साथ <TextBlock> तत्व है, तो संपूर्ण तत्व आवश्यकतानुसार अधिक जगह लेता है।टेक्स्टब्लॉक का आकार छोटा करें

Wasted Space

(मिश्रण से) नीले रूपरेखा अंतरिक्ष से पता चलता है जब इस बात का आसानी से आधे की जरूरत है तत्व, लेता है। क्या वैसे भी मैं उस जगह को खत्म कर सकता हूं जैसे कि मेरे तत्व इतने दूर नहीं हैं? मैंने मार्जिन, पैडिंग इत्यादि की कोशिश की है लेकिन अधिकांश विधियां काम नहीं लगती हैं।

Ideal

आदर्श रूप में मैं <textblock> लाल बॉक्स

संपादित ने संकेत दिया अंतरिक्ष की ही राशि को लेने के लिए चाहते हो जाएगा:

With Lower Cased Letters

जवाब में stijn7 को, कुछ जगह वास्तव में अन्य अक्षरों (जी, पी, क्यू आदि) के लिए आरक्षित है। हालांकि शीर्ष पर अभी भी बहुत सी जगह है (1 सेगो यूआई में सबसे ज्यादा चरित्र है)। यदि टेक्स्टब्लॉक को क्लिप करना संभव नहीं है, तो क्या मैं वैसे भी इसका आकार बदल सकता हूं कि कोई बर्बाद जगह नहीं है?

+2

शायद ऐसा ही है क्योंकि अन्य पात्रों को उस स्थान की आवश्यकता है? फिर भी दिलचस्प सवाल है। – stijn

+0

शीर्ष स्थान विशेष वर्णों के लिए है, जैसे^और ', विभिन्न भाषाओं में। यदि आप कैरेक्टर मैप में सेगो देखते हैं, तो आप इन्हें देख सकते हैं। – dex3703

उत्तर

1

समस्या यह है कि टेक्स्टब्लॉक की ऊंचाई ऊंचाई के साथ वर्ण प्रस्तुत करने के लिए ऊंचाई ascender and descender शामिल करती है। आपके द्वारा चुने गए चरित्र को x-height फ़ॉन्ट का विस्तार करना होता है, लेकिन उससे परे नहीं। आदेश प्रभाव आप कर रहे हैं प्राप्त करने के लिए के बाद आप एक थोड़ा कम स्तर पाठ प्रतिपादन एपीआई की आवश्यकता होगी में, मैं FormattedText वर्ग आजमाने का सुझाव देते हैं:

(WPF) विंडोज प्रस्तुति फाउंडेशन में पाठ ड्राइंग के लिए निम्न स्तर के नियंत्रण प्रदान करता है अनुप्रयोगों।

इस कक्षा में MaxTextHeight संपत्ति है। मैंने यह कोशिश नहीं की है, लेकिन एक मौका है कि यह आपको आवश्यक जानकारी देगा।

1

टेक्स्टब्लॉक ऊंचाई को मैन्युअल रूप से सेट करने के लिए दो गुण, लाइनहेइट और लाइनस्टैकिंगस्ट्रेटी का खुलासा करता है। ध्यान दें कि LineHeight को प्रभावी होने के लिए आपको LineStackingStrategy को "BlockLineHeight" पर सेट करना होगा।

<TextBlock LineHeight="180" LineStackingStrategy="BlockLineHeight" Text="0" FontSize="200"/> 
संबंधित मुद्दे