2012-10-06 10 views
5

मुझे लगता है कि नमूने में एक छवि को लोड करने XAML Images sample project और XAML को देखकर किया गया है इस तरह दिखता है:विंडोज 8 ऐप: मुझे अपने छवि स्रोत यूआरएल में एमएस-एपएक्स: /// क्यों निर्दिष्ट करना चाहिए?

<Image Source="Assets/image1.jpg"/> 

हालांकि, अपने ही परियोजना में मुझे लगता है कि मुझे लगता है कि जैसे किसी भी छवियों को लोड नहीं कर सकते। यदि मैं कोशिश करता हूं तो मैं ImageFailed को संभालने पर E_NETWORK_ERROR प्राप्त करता हूं। इसके बजाय, मुझे पता चला मैं एमएस-appx का उपयोग करना होगा: इस तरह /// उपसर्ग:

<Image Source="ms-appx:///Assets/image1.jpg"/> 

तो यह काम करता है। कोई भी विचार जो मेरे प्रोजेक्ट के नमूने बनाम नमूना के बारे में अलग है जो इसका कारण बनता है?

+1

क्या आपका xaml अपने फ़ोल्डर में है? छवि संदर्भ सापेक्ष हैं, इसलिए यदि आप किसी फ़ोल्डर में प्रारंभ कर रहे हैं तो आपको इसे पहले .. ~' करके छोड़ना होगा। – mydogisbox

उत्तर

8

पर दर्ज है आप की कोशिश की है "<Image Source="/Assets/image1.jpg>"?

+0

ऐसा इसलिए था क्योंकि मेरी xaml फ़ाइल उप निर्देशिका में थी। मैंने माना कि पथ किसी कारण से परियोजना रूट के सापेक्ष थे। मैं गूंगा हूँ। – Skrymsli

+11

आप गूंगा नहीं हैं। त्रुटि संदेश भयानक हैं। – Tristan

1

This behavior works - 8 RTM/Visual Studio 2012 RTM Windows में परीक्षण किया है, और इस बात की पुष्टि कर सकते हैं कि एमएस-appx: // उपसर्ग आवश्यकता नहीं है। आप किस निर्माण का उपयोग कर रहे हैं?

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

इसके अलावा, इस How to load file resources (XAML) (Windows)

1

घोषणात्मक छवियों के लिए आपको ms-appx नेमस्पेस (XAML में घोषित छवियों) की आवश्यकता नहीं है। गतिशील डेटाबेस छवियों के लिए, एक नया बिटमैप उदाहरण बनाया गया है, और इसके लिए इस नामस्थान की आवश्यकता है।

इस से निपटने के लिए एक शानदार तरीका एक आधार उद्देश्य यह है कि एक साझा संपत्ति के रूप में नाम स्थान को लागू करता है से अपने डेटा वस्तुओं प्राप्त करने के लिए है:

Private Shared _baseUri As New Uri("ms-appx:'''") 

'//image handling 
Private _image As ImageSource 
Private _imagePath As String 
Public Property Image As ImageSource 
    Get 
     If Me._image Is Nothing AndAlso Me._imagePath IsNot Nothing Then 
      Me._image = New BitmapImage(New Uri(dataModelBase._baseUri, Me._imagePath)) 
     End If 
     Return Me._image 
    End Get 

    Set(value As ImageSource) 
     Me._imagePath = Nothing 
     Me.SetProperty(Me._image, value) 
    End Set 
End Property 
2

एम विंडोज फोन 8 पर काम कर रहा पर मैं इस का इस्तेमाल किया।

आदेश Image1.Source = नया बिटमैप छवि (नया उरी ("/// संपत्ति/छवियां/order_bread.png"));

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