2009-01-22 10 views
8

(मुझे आपको कुछ संदर्भ दें) मैं वर्तमान में एक ऐसे एप्लिकेशन को डिज़ाइन कर रहा हूं जो कुछ डेटा के आधार पर एक प्रिंट करने योग्य ए 4 पृष्ठ उत्पन्न करने वाला है। स्वाभाविक रूप से, डिवाइस WPF (96 पिक्सेल/इंच) के स्वतंत्र पिक्सेल पेपर दुनिया में माप की एक बहुत ही प्राकृतिक इकाई नहीं है। मिलीमीटर की तरह कुछ अधिक उपयुक्त होगा। तो मुझे अपना कैलकुलेटर मिला और 3.77 9 के आसपास कुछ के स्केलिंग कारक पर पहुंचा।डब्ल्यूपीएफ में एक अलग समन्वय प्रणाली का उपयोग कैसे करें? (केवल स्केलिंग)

यह पता चला बस थप्पड़ मारने सब कुछ है कि एक ScaleTransform में पृष्ठ पर जाने के लिए चाहिए था एक बुरा पक्ष प्रभाव पड़ता है: फ़ॉन्ट आकार बहुत (स्वाभाविक रूप से) मापा जाता है। हालांकि, यह मेरा इरादा नहीं है। मैं 12pt एरियल को 12pt एरियल की तरह प्रस्तुत करना चाहूंगा सामान्य रूप से प्रस्तुत करना होगा।

क्या कोई अन्य तरीका है एक्सटेंशन में कॉल किए बिना समन्वय प्रणाली को बदलें या प्रत्येक समन्वय, लंबाई, मोटाई और इतने पर कनवर्ट करने के लिए जो भी हो? - या - क्या पर नक्शा फ़ॉन्ट आकार ऑन-द-फ्लाई पर निर्भर करता है, निर्भरता प्रॉपर्टीज? एक कस्टम नियंत्रण के माध्यम से जो सभी पेपर सामग्री लपेटता है, हो सकता है?

उत्तर

17

उल्लिखित आवश्यकताओं के लिए आपको कुछ विशेष करने की आवश्यकता नहीं है, बस आगे बढ़ें और WPF तत्वों के लिए माप की इकाई के रूप में सेंटीमीटर का उपयोग करें (यानी बिना किसी परिवर्तन के) - WPF डिवाइस आजादी की प्रकृति आपको अनुमति देती है निम्न के लिए:

<Window x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" Height="29.7cm" Width="21cm" FontSize="16pt"> 
    <Grid> 
     <TextBlock Text="Sample" Height="1in" Width="1in" FontSize="12pt" 
      HorizontalAlignment="Center" VerticalAlignment="Center" 
      TextAlignment="Center"/> 
    </Grid> 
</Window> 

है: यदि आप एक ए 4 खिड़की एक केंद्रित वर्ग पाठ बॉक्स 'in' में निर्दिष्ट और 'pt' में निर्दिष्ट एक फ़ॉन्ट के साथ 'cm' में निर्दिष्ट मिलेगा। यदि आप आवश्यकता हो तो अतिरिक्त रूप से लागू होने वाले किसी भी प्रकार के परिवर्तन के साथ-साथ जो कुछ भी आप लागू कर सकते हैं, ठीक से स्केल कर सकते हैं (उदाहरण के लिए उपयोगकर्ता दृश्य पोर्ट के लिए ज़ूम स्लाइडर के माध्यम से), अलग-अलग इकाइयों के साथ निर्दिष्ट होने के बावजूद अपने रिश्तेदार आकारों का सम्मान करना (यानी इच्छा पर मिश्रित उपयोग)।

उपलब्ध इकाइयां px (डिफ़ॉल्ट), in, cm और pt रहे हैं, उनके विनिर्देश पर जानकारी के लिए उदाहरण FrameworkElement.Height के लिए देखते हैं।

+1

धन्यवाद, मुझे नहीं पता था कि गुणों को निर्दिष्ट करते समय आप इकाइयों को निर्दिष्ट कर सकते हैं। हाँ, यह वही है जो मैं चाहता हूं। –

0

बस set the font size से 12/3.779 = 3.175, नहीं? इसे ऑब्जेक्ट में असाइन करें और इसे सभी बच्चों को उलझाना चाहिए।

+0

जो मैं नहीं चाहता, संपत्ति असाइनमेंट में ऐसे "रूपांतरण" पेश करना है। भले ही यह कुछ कस्टम वाक्यविन्यास से छिपा हुआ हो। –

2

आप इंच (फ़ॉन्ट आकार = "10in") में इंच (फ़ॉन्ट आकार = "10in") में या सेंटीमीटर (फ़ॉन्ट आकार = "10 सेमी") में आकार भी सेट कर सकते हैं। बेशक वास्तविक आकार विंडोज़ की डीपीआई सेटिंग और इस मामले में आपके मॉनीटर या प्रिंटर के डीपीआई पर निर्भर करता है।

+1

Thx, उसे नहीं पता था। मैं स्टीफन ओपल के जवाब को स्वीकार करूंगा, हालांकि, वह एक और विस्तृत विवरण प्रदान करता है। –

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