2010-09-03 7 views
6

मैं विंडोज फोन 7 ऐप पर काम कर रहा हूं, और कुछ गुगलिंग के बाद ऐसा लगता है कि मैंने विजुअल स्टूडियो प्रोजेक्ट में जो छवियां जोड़ दी हैं, मुझे बिल्डिंग एक्शन को "कंटेंट" में सेट करने की आवश्यकता है मेरे ऐप में छवियों का संदर्भ करने में सक्षम।विंडोज फोन 7 छवि फ़ाइलों के लिए सही निर्माण कार्रवाई क्या है?

हालांकि, विंडोज फोन सूची एप्लिकेशन प्रोजेक्ट टेम्पलेट में एक छवि (ArrowImg.png) शामिल है जिसमें इसकी बिल्ड एक्शन सेट "संसाधन" है, और अभी भी एप्लिकेशन से संदर्भित होने के लिए उपलब्ध है।

मैं सोच रहा था कि कोई भी यह पुष्टि कर सकता है कि हमें निश्चित रूप से सामग्री निर्माण कार्रवाई का उपयोग करना चाहिए, या प्रोजेक्ट नमूना में दिखाए गए अनुसार संसाधन बिल्ड एक्शन के साथ किसी प्रोजेक्ट में जोड़े गए चित्रों तक पहुंचने का कोई तरीका है, जिसे हमें चाहिए इसके बजाय उपयोग कर रहे हैं?

उत्तर

10

यदि आप "सामग्री" पर कार्रवाई सेट करते हैं तो छवि को एक्सएपी में "जैसा है" शामिल किया गया है। यदि आप "संसाधन" पर कार्रवाई सेट करते हैं तो छवि साझा डीएलएल में एम्बेड की जाती है।

कई स्थितियों में आप या तो उपयोग कर सकते हैं। एक प्रदर्शन हो सकता है, या अन्य, किसी दूसरे के बजाय एक का उपयोग करने के साथ समस्या हो सकती है लेकिन मुझे पता नहीं है और मैंने कभी भी ध्यान नहीं दिया है।

इसके लायक होने के लिए, जब तक कि मुझे इसे विशेष रूप से संसाधन बनाने की आवश्यकता न हो, मैं सामग्री का उपयोग करता हूं।

वर्तमान (बीटा) उपकरण के साथ, मैंने वीएस को शिकायत की है कि XAML में सीधे संदर्भित छवियों को "संसाधन" (यदि "सामग्री" पर सेट किया गया हो) पर सेट किया जाना चाहिए, लेकिन ऐप या तो ठीक काम करता है। उम्मीद है कि यह एक मुद्दा है जिसे आरटीएम उपकरणों में संबोधित किया जाएगा।

अधिक जानकारी के लिए What are the various "Build action" settings in Visual Studio project properties and what do they do?

+0

प्रतिक्रिया के लिए धन्यवाद - तो आप निश्चित रूप से बीटा WP7 उपकरण में एक संसाधन के निर्माण कार्रवाई के साथ छवि का संदर्भ में कामयाब रहे? (मैंने ऐसा करने के लिए काफी समय की कोशिश की लेकिन ऐसा करने में सक्षम नहीं हुआ, जो नमूना प्रोजेक्ट करता है, जो थोड़ा निराशाजनक था ...) –

+0

मैंने छवियों का उपयोग कर बीटा टूल्स में संसाधनों के रूप में छवियों को एक्सेस किया है .GetResourceStream (नया उरी (फ़ाइल नाम, UriKind.Relative)); मैंने एक्सएएमएल में दोनों प्रकार के निर्माण प्रकारों की छवियों को सीधे प्रस्तुत किया है। वीएस संसाधन के बारे में एक चेतावनी बनाता है लेकिन यह अभी भी काम करता है। मुझे लगता है कि यह निर्भर करता है कि आप उन्हें संदर्भित करना चाहते हैं –

+4

संसाधनों के बजाय सामग्री का उपयोग करने से असेंबली के आकार को भी कम किया जाएगा, जो एप्लिकेशन स्टार्टअप समय को कम करेगा ([उच्च प्रदर्शन व्हाइटपेपर] देखें (http: //www.jeff। विवरण के लिए wilcox.name/2010/08/windows-phone-performance/)। –

3

में चर्चा को देखें या तो निर्माण कार्रवाई सही है।

बिल्डिंग एक्शन से संबंधित मुद्दों को हल करते समय भी देखने के लायक है जो आप उपयोग करते हैं।

मैंने देखा है कि कुछ लोगों को इस समस्या में समस्या हो रही है क्योंकि वे मानते हैं कि उन्होंने अपनी बिल्ड कार्रवाई को उचित तरीके से सेट किया है।

लोड समय लागत लेने के दौरान आप अपनी आवश्यकताओं को पूरा करने के लिए बिल्ड एक्शन को किसी भी तरह से सेट कर सकते हैं, आपको केवल सूट के लिए पथ समायोजित करने की आवश्यकता है।

इस पोस्ट के विषय पर कुछ और जानकारी।

Set source to image in C#

आप संसाधनों की आलसी लोड हो रहा है संस्करण के लिए सामग्री की तुलना कर सकते हैं।

अंतर आप सभी संसाधनों का प्रदर्शन हिट करना पड़ेगा जब विधानसभाओं अपने अनुप्रयोग शुरू करने के लिए लोड हो रहा है।

दूसरी ओर, प्रदर्शन हिट जब आप इसका उपयोग करते हैं तो स्थगित कर दिया जाता है।

जो अधिक उपयुक्त है मामले के आधार पर अलग-अलग होगा।

ध्यान दें कि संदर्भ संसाधन और सामग्री का पथ है जैसा कि यहां देख सकता है।

//Uri uri = new Uri("/Resources/Images/MyImage.jpg", UriKind.Relative); // Content 
    Uri uri = new Uri("/PhoneApp;component/Resources/Images/MyImage.jpg", UriKind.Relative); // Resource 
    BitmapImage imgSource = new BitmapImage(uri); 
    image1.Source = imgSource; 
+0

ध्यान देने योग्य भी है, आप इस पर असर डाल सकते हैं अपने एक्सएपी पैकेजिंग को ज़िप पर अपने एक्सएपी का नाम बदलकर और इसे देखने के लिए खोलकर है। –

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

  • कोई संबंधित समस्या नहीं^_^