2013-08-15 2 views
7

प्रस्तुत नहीं करता है, मैं यह नहीं समझ सकता कि WPF (.NET 4.5/VS2012/Windows 8) में एक विशिष्ट ओपनटाइप फ़ॉन्ट को सही तरीके से कैसे प्रस्तुत किया जाए। मेरे पास "डिनप्रो-ब्लैकइटलिक" नामक कंप्यूटर पर एक फ़ॉन्ट स्थापित है। है रिपोर्ट DINPro-BlackItalic.otfडब्ल्यूपीएफ विंडोज ओपनटाइप फ़ॉन्ट नाम

Windows फ़ॉन्ट का नाम::

फ़ाइल का नाम है DINPro-BlackItalic

Windows Font preview for DINPro-BlackItalic

WPF में, मैं कुछ सरल, पसंद करते हैं यह:

<TextBlock Text="This is a sample sentence in DINPro-BlackItalic" 
       FontFamily="DinPro-BlackItalic" FontSize="24" /> 

या FontFamily="#DinPro-BlackItalic"

यह काम नहीं करता है (स्पष्ट रूप से इटैलिक नहीं) और यह डिफ़ॉल्ट फ़ॉन्ट पर वापस आ जाता है। मैंने कई अन्य विविधताओं को आजमाया है जो फ़ॉन्ट निर्देशिका में अन्य फोंट के लिए काम करते हैं।

उदाहरण के लिए, कॉमिक सन्स काम करता है: मैं सिर्फ फ़ॉन्ट का नाम विराम देंगे करने के लिए एक अलग तरह से लगता है, तो यह renders: FontFamily="Comic Sans MS" (भयानक ...)

अब, यह कारण है कि मैं वास्तव में भ्रमित कर रहा हूँ सही ढंग से!

यह काम करता है: Several FontFamily settings in WPF

दो सवाल:

1) मैं कैसे करना चाहिए FontFamily="Din Pro Black Italic"

संक्षेप में, यहाँ WPF में विभिन्न FontFamily सेटिंग्स की एक स्क्रीन शॉट है इस फ़ॉन्ट को प्रस्तुत करने के लिए WPF को बताने के लिए सही तरीके से अनुमान लगाएं? इसमें कहीं भी एक कैनोलिक नाम पंजीकृत होना चाहिए, लेकिन यह फाइलनाम, फ़ाइल गुणों या फ़ॉन्ट नाम में दिखाई नहीं दे रहा है, जो फ़ाइल को पार्स करने के बाद विंडोज रिपोर्ट करता है।

2) क्या बदतर है कि अगर मैं एक डेस्कटॉप अनुप्रयोग में और वेब पर एक ही फॉन्ट रेंडर करने के लिए प्रयास कर रहा हूँ, विंडोज और यहां तक ​​कि आईई उम्मीद "DINPro-BlackItalic" पर Chrome जैसे ब्राउज़र और से नहीं चल पाएगी है नाम का विस्तारित संस्करण। ऐसा लगता है कि डब्ल्यूपीएफ और विंडोज ब्राउज़र पारस्परिक रूप से अनन्य फ़ंक्शंस इंडेक्स फ़ॉन्ट्स के लिए उपयोग करने के लिए फ़ॉन्ट नाम के बारे में निर्णय लेते हैं। मनमाने ढंग से फोंट के लिए मैं इसके आसपास कैसे काम करूं?

DINPro Font rendering in Chrome and IE

उत्तर

0

WPF के लिए, बेहतर TextBlock

ब्राउज़र के लिए के लिए फ़ॉन्ट का चयन करने के लिए डिजाइनर के साथ यह कोशिश करने के लिए, यह लेबल के साथ करने की कोशिश की जा सकती है या किसी अन्य यूआई प्रदर्शित करने के लिए नियंत्रित करता है।

4

आप एप्लिकेशन के साथ फ़ॉन्ट पैक कर सकते हैं, और आप इसे प्रोजेक्ट निर्देशिका से संदर्भित कर सकते हैं। कहें कि क्या आप प्रोजेक्ट में फ़ॉन्ट्स निर्देशिका के अंदर फ़ॉन्ट डालते हैं।

इस प्रकार आप जोड़ सकते हैं,

<TextBlock FontFamily=”/Fonts/DINPro-BlackItalic.otf#DinPro-BlackItalic”/> 

तो तुम सुनिश्चित हो सकता है, फ़ॉन्ट आवेदन के साथ तैनात किया जाता है।

1

ठीक है तो मुझे लगता है कि मैं समाधान नहीं मिला ..

<TextBlock FontFamily=”/Fonts/DINPro-BlackItalic.otf#Din Pro”/> 

या

<TextBlock FontFamily=”/Fonts/DINPro-BlackItalic.otf#Din Pro Black Italic”/> 

havn't अपने कोड की कोशिश की है, लेकिन यह मेरे लिए काम करने के लिए लग रहा था .. के रास्ते संदर्भित फ़ाइल + fontname

ओपटेपे फ़ाइलों के पास एक साझा नाम होता है जो वे साझा करते हैं। और यह वह जगह है जहां यह मुश्किल हो जाता है, क्योंकि आप केवल इस नाम को देख सकते हैं यदि आप अपने पीसी पर फ़ॉन्ट इंस्टॉल करते हैं, और इसे पारिवारिक में जांचते हैं। जैसे आप अपने सवाल में पहले से पता चला है:

FontFamily="Din Pro Black Italic" 

यह मेरा अनुभव% नहीं 100 यकीन है कि मैं सही हूँ, केवल यह है कि यह काम करता है मुझे :)

0

वाक्य रचना कि मेरे लिए काम करता है के लिए है,:

/{Application Name};component/{Font Folder in Project}/#{Font Name (not filename)} 

उदाहरण:

/ApplicationName;component/Fonts/#Proxima Nova Lt 
संबंधित मुद्दे