मैं प्रिज्म आधारित WPF एप्लिकेशन में .NET 4 स्प्लैशस्क्रीन का उपयोग करने का प्रयास कर रहा हूं। मैंने स्प्लैशस्क्रीन पर छवि पर बिल्ड एक्शन सेट करके स्पैशस्क्रीन का उपयोग किया है।एक WPF प्रिज्म आधारित एप्लिकेशन में .NET 4 SplashScreen का उपयोग कैसे करें?
एप्लिकेशन System.Resources.MissingManifestResourceException
के साथ क्रैश होने पर प्रयुक्त होता था। अंततः मुझे पता चला कि अगर मैं App.Xaml फ़ाइल में StartupUri = "MainWindow.xaml" जोड़ता हूं, तो स्पलैशस्क्रीन ठीक काम करता है।
<Application x:Class="Application"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
</Application>
लेकिन प्रिज्म एप्लिकेशन में, हमारे पास स्टार्टअप यूरी नहीं हो सकती है। सब कुछ बूटस्ट्रैपर में किया जाता है।
तो मुझे स्प्लैशस्क्रीन को काम करने के लिए स्टार्टअपयूरी ने मैन्युअल रूप से क्या करने की आवश्यकता है?
अद्यतन 1: पूरा अपवाद संदेश है:
System.Resources.MissingManifestResourceException बिना क्रिया
संदेश था = किसी भी संसाधन निर्दिष्ट संस्कृति या तटस्थ संस्कृति के लिए उपयुक्त नहीं मिल सका। सुनिश्चित करें कि "Application.g.resources" को संकलित समय पर असेंबली "एप्लिकेशन" में सही ढंग से एम्बेड या लिंक किया गया था, या सभी सैटेलाइट असेंबली आवश्यक हैं जो लोड करने योग्य और पूरी तरह से हस्ताक्षरित हैं।
अद्यतन 2: मैं पता लगा है जोड़ने या हटाने के StartupUri फर्क नहीं पड़ता। क्या मायने रखता है कि मेरे पास अतिरिक्त WPF विंडो (App.xaml के अलावा) या ऐप में 2 डमी प्रविष्टियां हैं। स्रोत टैग।
<Application.Resources>
<Style x:Key="Dummy"/>
<Style x:Key="Dummy1"/>
</Application.Resources>
मैं ऐसा नहीं करते हैं, तो Application.g.resources फ़ाइल obj फ़ाइल में नहीं बनाया जाता है और इसलिए निष्पादन में एम्बेड नहीं। दो डमी संसाधन प्रविष्टियों को जोड़कर इस blog post द्वारा मेरे ध्यान में लाया गया था।
अद्यतन 3:
मेरा प्रश्न MSDN मंच here पर बॉब बाओ द्वारा उत्तर दिया गया था। ऐसा लगता है कि केंट एक ही दिशा में मुझे इंगित करने की कोशिश कर रहा था।
छवि के निर्माण कार्य को स्पलैशस्क्रीन पर सेट न करें। इसके बजाय:
के रूप में अनुप्रयोग OnStartup विधि में कोड जोड़ें:
protected override void OnStartup(StartupEventArgs e)
{
SplashScreen splashScreen = new SplashScreen("splashscreen.png");
splashScreen.Show(true);
base.OnStartup(e);
Bootstrapper bootstrapper = new Bootstrapper();
bootstrapper.Run();
}
"splashscreen.png" परियोजना में एक छवि है, और उसके "कार्रवाई बिल्ड" "संसाधन" है।
के साथ एक पूर्ण उदाहरण है वहाँ एक सवाल यहीं कहीं में है? – DeCaf
@DeCaf मैंने प्रश्न अपडेट किया है। –