2010-12-28 17 views
6

मुझे अपने सरल एप्लिकेशन में एक कार्यक्षमता जोड़ने की आवश्यकता है - उपयोगकर्ता को पूरे अनुप्रयोग के लिए फ़ॉन्ट आकार बदलने की अनुमति देने के लिए। क्या करना आसान है? क्या आप मुझे कोई संकेत दे सकते हैं कि कैसे शुरू किया जाए? इसमें केवल 3 पूर्वनिर्धारित फ़ॉन्ट आकार होने की आवश्यकता है लेकिन मेरे दिमाग में आने वाला पहला और एकमात्र समाधान 3 अलग-अलग विषयों को बनाना है। क्या इसे आसान बनाना संभव है?डब्ल्यूपीएफ - रनटाइम पर वैश्विक फ़ॉन्ट आकार बदलें

उत्तर

12

सौभाग्य से, FontSizeProperty Value Inheritance का उपयोग करता है। इसका मतलब यह है कि जब तक इसे ओवरराइड न करें, FontSize स्वचालित रूप से सभी बाल टेक्स्ट तत्वों के लिए प्रचारित हो जाएगा। नतीजतन, आप एक ही सेट कर सकते हैं:

<Window FontSize="10" ...> 

और यह कि एक फ़ॉन्ट आकार की जरूरत नहीं है कि विंडो में सभी पाठ तत्वों पर लागू होंगे। कोड में इसे बदलने के लिए और साथ ही सरल है:

this.FontSize = 20; 

विंडो के कोड-पीछे में मक्खी पर सभी अनिर्दिष्ट फ़ॉन्ट आकार बदल जाएगा।

<Grid TextElement.FontSize="15" ...> 

ही अन्य पाठ गुण आप का उल्लेख के लिए सच है: यह भी चीजें हैं जो फ़ॉन्ट आकार का समर्थन नहीं करते के लिए काम करता है।

+0

यह मैंने देखा है दूसरों की तुलना में यह एक अविश्वसनीय रूप से सरल समाधान है। सहायता के लिए धन्यवाद! – TheBlindSpring

0

सबसे बुनियादी स्तर आप एक चर जिसे फिर आप अपने तीन पूर्व-निर्धारित मानों में से एक होने के लिए बदल सकते हैं, अपने TextBlocks आदि की FontSize संपत्ति के लिए बाध्य करने की जरूरत पर:

<TextBlock FontFamily="Arial" Text="Sample text" FontSize="{Binding TextSize}" /> 

लेकिन, आप की आवश्यकता होगी इसे पर सभी में जोड़ने के लिए याद रखें।

आपके द्वारा उपयोग की जाने वाली शैलियों के आकार को बांधने का एक बेहतर समाधान होगा, लेकिन फिर से सभी पाठों को स्टाइल करना होगा। यदि आपने एक अंतर्निहित शैली का उपयोग किया है तो आपको अपने पाठ का संदर्भ जोड़ने की याद नहीं रखना पड़ेगा, लेकिन आपके सभी टेक्स्ट को वही देखना होगा। चाहे वह कोई समस्या हो या नहीं, आपके आवेदन पर निर्भर करेगी।

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