2009-09-22 13 views
8

मेरे पास कुछ पथ परिभाषित हैं कि मैं DrawingImage संसाधनों में कनवर्ट करना चाहता हूं लेकिन मुझे कुछ याद आना चाहिए।ड्रॉइंग इमेज में पथ का उपयोग कैसे करें?

अर्थात

मैं कुछ इस तरह ले जाना चाहते हैं:

<Path Stroke="DarkGoldenRod" StrokeThickness="3" 
     Data="M 100,200 C 100,25 400,350 400,175 H 280" /> 

और कुछ इस तरह के साथ उपयोग करें:

<DrawingImage x:Key='icon'> 
    <DrawingImage.Drawing> 
     <DrawingGroup> 
     <DrawingGroup.Children> 
      <GeometryDrawing ... /> 
      . . . 
     </DrawingGroup.Children> 
     </DrawingGroup> 
    </DrawingImage.Drawing> 
</DrawingImage> 

कोई सुझाव?

-dk

+0

मेरे पास इंकस्केप से निर्यात की गई एक्सपीएस फ़ाइल से डेटा का उपयोग कर एक ही प्रकार का मुद्दा है। – jpierson

+0

शर्म की बात है कि ऐसा करने के दो तरीके हैं जो गैर-तुच्छ रूप से अलग हैं ... –

+0

मैं 'ड्रॉइंगब्रश' के साथ संसाधन डिक्शनरी निर्यात करने के लिए अभिव्यक्ति डिज़ाइन का उपयोग कर रहा हूं, और मैं नामों को 'ड्राइंग इमेज' में बदलता हूं। – marbel82

उत्तर

6

मैं काफी आप क्या करना ... थॉमस के जवाब देने के लिए अपनी टिप्पणी दी चाहते पता नहीं है।

हालांकि, अभिव्यक्ति डिजाइन दो अलग WPF मायनों में निर्यात कर सकते हैं: एक ResourceDictionary करने के लिए जहां कलाकृति DrawingBrush (ते) में बदल जाता है

  1. , या
  2. (एक कैनवास जहां कलाकृति पथ में बदल जाता है रों करने के लिए
  3. ) और आकार (ओं)।

संसाधन डिक्शनरी/ड्राइंगब्रश दृष्टिकोण आपके द्वारा दिए गए सुझाए गए उत्तर के समान ही है और थॉमस ने उत्तर दिया।

मैं सुझाव दूंगा कि आपके आर्टवर्क को अभिव्यक्ति डिज़ाइन के साथ डिज़ाइन करना है और फिर। डिज़ाइन फ़ाइल को पकड़ना है ताकि आप जो भी प्रारूप चाहते हैं उसे निर्यात कर सकें ... विशेष रूप से बाद के समय में।

अब, मुझे पता है कि एडोब इलस्ट्रेटर में बहुत सारी कलाकृतियां की जाती हैं और फिर अभिव्यक्ति डिज़ाइन का उपयोग करके परिवर्तित किया जाता है। यदि ऐसा है, तो मैं .ai फ़ाइल और .design फ़ाइल दोनों रखूंगा ताकि आप हमेशा अपनी कलाकृति को संशोधित कर सकें और फिर निर्यात कर सकें।

बेशक, यह सब कुछ इस मुद्दे पर पहुंचने के लिए है कि आप अभिव्यक्ति डिजाइन में xaml आयात नहीं कर सकते हैं (यानी यह एक राउंड-ट्रिप परिदृश्य का समर्थन नहीं करता है)।

एक बात जो मैं उल्लेख करूंगा वह यह है कि कभी-कभी यह पथ-डेटा संपत्ति को ज्यामिति ड्रॉइंग से जोड़ना आसान होता है। ज्यामिति गुण ... परिदृश्यों का आकार बदलने के कारण (जिसका अर्थ है ड्रॉइंगब्रश (एस) आम तौर पर कहीं भरने के लिए सेट होते हैं और फिर वे आमतौर पर जो भी जगह भरते हैं उन्हें भरते हैं)। तो, इसके लिए देखो!

6

यह काम करना चाहिए:

<DrawingImage x:Key='icon'> 
    <DrawingImage.Drawing> 
    <DrawingGroup> 
     <DrawingGroup.Children> 
     <GeometryDrawing Geometry="M 100,200 C 100,25 400,350 400,175 H 280"> 
      <GeometryDrawing.Pen> 
      <Pen Thickness="3" Brush="DarkGoldenRod"/> 
      </GeometryDrawing.Pen> 
     </GeometryDrawing> 
     </DrawingGroup.Children> 
    </DrawingGroup> 
    </DrawingImage.Drawing> 
</DrawingImage> 
+0

मैं पथ को मैन्युअल रूप से सममित ज्यामिति में पथ का अनुवाद नहीं करना चाहता हूं। इन सबके कारण यह है कि मेरे पास कुछ xaml कला है जो ब्लेंड के साथ बनाई गई थी और यह शॉर्टंड xaml पथ का उपयोग करके पथ प्रस्तुत करती है। मैंने देखा कि जब तक आप निर्यात नहीं करते हैं तो अभिव्यक्ति डिज़ाइन उसी छोटे पथ वाक्यविन्यास का उपयोग करता है, फिर यह आपके उदाहरण में सिंटैक्स का उपयोग करता है। –

+0

मुझे नहीं लगता कि एक्सएएमएल में ऐसा करने का दूसरा तरीका है यदि आप इसे ड्रॉइंग इमेज में रखना चाहते हैं ... तो शायद आप इसे कोड-पीछे में कर सकते हैं हालांकि –

+0

इस तरह मैं इसे करूँगा।मुझे लगता है कि हम यहां कुछ जानकारी खो रहे हैं। – cplotts

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