2013-02-26 147 views
7

मैं अपने कुछ बटनों पर चित्रों का उपयोग करता हूं और मैं नहीं चाहता कि इन छवियों को आउटपुट में शामिल किया जाए।छवि निर्माण कार्य: कोई नहीं और एम्बेडेड संसाधन के बीच अंतर?

ये छवियां बटन गुणों के माध्यम से सेट की गई हैं, इसलिए उन्हें Resource.resx फ़ाइल में परिभाषित किया गया है।

मुझे बिल्ड एक्शन को एंबेडेड संसाधन में सेट करने के लिए कहा गया था, लेकिन मुझे उत्सुकता है कि इससे कोई फर्क क्यों पड़ता है। मेरे पास बिल्ड एक्शन अभी "कोई नहीं" पर सेट है, और कोई भी फाइल कॉपी करने के लिए सेट नहीं है। और मैं कहीं भी निर्मित एप्लिकेशन को स्थानांतरित कर सकता हूं और इसे लॉन्च कर सकता हूं और सभी छवियां ठीक दिखती हैं। (बस स्पष्ट करने के लिए, छवियां निश्चित रूप से प्रोग्राम की निर्देशिका में लॉन्च होने पर नहीं होती हैं, और वे अभी भी ठीक दिखाई देती हैं)।

मैं इसे MSDN पर देखा और यह मिल गया:

कोई नहीं - फ़ाइल परियोजना उत्पादन समूह में शामिल नहीं है और निर्माण प्रक्रिया में संकलित नहीं है। एक उदाहरण एक टेक्स्ट फ़ाइल है जिसमें दस्तावेज़ शामिल हैं, जैसे रीडेमे फ़ाइल।

एंबेडेड संसाधन - यह फ़ाइल मुख्य परियोजना निर्माण आउटपुट में एक डीएलएल या निष्पादन योग्य के रूप में एम्बेडेड है। यह आमतौर पर संसाधन फ़ाइलों के लिए उपयोग किया जाता है।

लेकिन ऐसा लगता है कि उन्हें किसी भी सेट पर सेट करने की तरह लगता है कि यह भी काम नहीं कर रहा है (लेकिन यह करता है)।

तो मुझे उत्सुकता है कि इसे एंबेडेड रिसोर्स को क्या लाभ प्रदान करता है। मैंने इसका परीक्षण किया, और कोई फर्क नहीं पड़ता। उम्मीद कर रहा था कि कोई क्या हो रहा है समझा सकता है।

मेरी एकमात्र धारणा यह है कि बटन के माध्यम से छवि संपत्ति को सेट करते समय और प्रविष्टि संसाधन फ़ाइल में जोड़ दी जाती है, यह परियोजना में जोड़े गए फ़ाइल से कनेक्ट नहीं है (भले ही वे वही हों)। इसलिए यदि आप छवि संपत्ति को इस तरह से सेट कर रहे हैं, तो छवियों को परियोजना में शामिल करने की आवश्यकता नहीं है (यानी समाधान एक्सप्लोरर में)।

धन्यवाद!

उत्तर

8

ऐसा लगता है कि आपने एक छवि प्रदर्शित करने के दो अलग-अलग तरीकों से ठोकर खाई है।

  1. आप संसाधन फ़ाइल तो संसाधन फ़ाइल का उपयोग करते हैं खुद छवियों में शामिल होंगे और उस फ़ाइल आउटपुट निर्देशिका में कॉपी किया जायेगा। आप फिर इस संसाधन फ़ाइल से छवि का संदर्भ लेंगे और सभी अच्छी तरह से होंगे। किसी भी/एम्बेडेड/सामग्री के लिए वास्तविक छवि सेटिंग मामले नहीं होगी। यह आपको विभिन्न भाषाओं और स्थानों के लिए संसाधन फ़ाइलों को बनाने और आपके अनुप्रयोग संस्कृति के आधार पर उपयोग की जाने वाली छवि को बदलने की अनुमति देता है।

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

आप विधि # 1 का उपयोग कर रहे हैं ताकि एक बार आप इसे संसाधन फ़ाइल में डाल दिया है आप के बाद से संसाधन फ़ाइल पहले से ही इस परियोजना में है यह परियोजना में है की जरूरत नहीं है और वह यह है कि जहां फ़ाइल होगा से आते हैं।

+0

धन्यवाद। यही वह है जो मैं उलझन में था। मेरे सिर में जब मैं छवि स्रोत सेट कर रहा था, तो यह सब मैपिंग कर रहा था कि प्रोग्राम लॉन्च होने पर छवि कहां होगी। मैं संसाधन फ़ाइल में जोड़े जाने पर क्या हुआ था, उसे समझ नहीं रहा था। सभी को स्पष्ट कर दिया गया है। – Wrightboy