पर आधारित WPF संसाधन मौजूद है: // यूआरआई, यह बताने का सबसे अच्छा तरीका क्या है कि संकलित संसाधन (उदाहरण के लिए "संसाधन" की बिल्ड एक्शन के साथ संकलित एक पीएनजी छवि) वास्तव में मौजूद है यूआरआई? यह एक अपवाद फेंकता है तो संसाधन नहीं मिला है -पता लगाएं कि क्या यूआरआई
private static bool CanLoadResource(Uri uri)
{
try
{
Application.GetResourceStream(uri);
return true;
}
catch (IOException)
{
return false;
}
}
(ध्यान दें कि Application.GetResources प्रलेखन is wrong:
कुछ चारों ओर ठोकर के बाद, मैं इस कोड है, जो काम करता है लेकिन अनाड़ी है के साथ आया था , डॉक्स की तरह अशक्त लौटने के बजाय गलत तरीके से स्पष्ट करें।)(डॉक्स को सही किया गया है, नीचे टिप्पणी देखें)
मैं एक उम्मीद (गैर असाधारण) परिणाम का पता लगाने के लिए अपवाद को पकड़ने पसंद नहीं है। और इसके अलावा, मैं वास्तव में स्ट्रीम लोड नहीं करना चाहता, मैं सिर्फ यह जानना चाहता हूं कि यह मौजूद है या नहीं।
क्या ऐसा करने का कोई बेहतर तरीका है, शायद निम्न स्तर के संसाधन API के साथ - आदर्श रूप से स्ट्रीम को लोड किए बिना और अपवाद को पकड़ने के बिना आदर्श?
उन्होंने डॉक्टर को अपडेट किया, यह कहता है कि संसाधन मिलने पर यह अपवाद फेंकता है। – Shimmy
@Shimmy, अपडेट के लिए धन्यवाद - मैंने उस जानकारी को शामिल करने के लिए संपादित किया है। –
@ जॉन व्हाइट: बीटीडब्लू, मुझे लगता है कि आपको [जेपीरसन की पोस्ट] चिह्नित करना चाहिए (http://stackoverflow.com/questions/2013481/detect-whether-wpf-resource-exists-based-on-uri/2549641#2549641) जवाब। – Shimmy