2012-02-12 20 views
6

पर स्टार्टअप पेज को कैसे बदलें I IsolatedStorage में संग्रहीत कुछ सेटिंग्स के आधार पर अलग-अलग स्टार्ट-पेज रखना चाहते हैं।WP7 एप्लिकेशन

बु मुझे नहीं पता कि इसे संभालने का सबसे अच्छा अभ्यास कहां है। I. अगर मुझे अलग भंडारण में कुछ मिलता है तो मैं उपयोगकर्ता को मेनपेज प्राप्त करने के लिए चाहता हूं, अन्यथा मैं उपयोगकर्ता को सेटिंग्स-पेज प्राप्त करने के लिए पसंद करता हूं।

यदि मैं कुछ जादू सामग्री का उपयोग करने के लिए एमवीवीएम-प्रकाश का उपयोग कर रहा हूं।

बीआर

+0

http://stackoverflow.com/questions/3892271/how-do-i-change-the-startup-page -ऑन-ए-डब्ल्यूपी 7-चांदी की रोशनी-एप – driis

उत्तर

9

आप अपने प्रोजेक्ट के मुख्य पृष्ठ के रूप में एक डमी पेज सेट करके ऐसा कर सकते हैं। आप संपादन अपनी परियोजना के WMAppManifest.xml फ़ाइल द्वारा मुख्य पृष्ठ बदल सकते हैं:

<DefaultTask Name="_default" NavigationPage="DummyPage.xaml" /> 

अब, सभी नेविगेशन डमी पृष्ठ के लिए निर्देशित का पता लगाने, और जो भी अपने इच्छित पृष्ठ अनुप्रेषित।

निर्माता के अंत में App.xaml.cs फ़ाइल में ऐसा करने के लिए, 'नेविगेट' घटना की सदस्यता:

this.RootFrame.Navigating += this.RootFrame_Navigating; 

ईवेंट हैंडलर में, पता लगाने अगर नेविगेशन निर्देश दिया जाता है डमी पृष्ठ पर, नेविगेशन रद्द कर दें और अपने इच्छित पृष्ठ रीडायरेक्ट:

void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e) 
{ 
    if (e.Uri.OriginalString == "/DummyPage.xaml") 
    { 
     e.Cancel = true; 

     var navigationService = (NavigationService)sender; 

     // Insert here your logic to load the destination page from the isolated storage 
     string destinationPage = "/Page2.xaml"; 

     this.RootFrame.Dispatcher.BeginInvoke(() => navigationService.Navigate(new Uri(destinationPage, UriKind.Relative))); 
    } 
} 

संपादित

वास्तव में, वहाँ भी है आसान। एप्लिकेशन निर्माता के अंत में, बस प्रतिस्थापन उरी के साथ एक UriMapper सेट आप चाहते हैं:

var mapper = new UriMapper(); 

mapper.UriMappings.Add(new UriMapping 
{ 
    Uri = new Uri("/DummyPage.xaml", UriKind.Relative), 
    MappedUri = new Uri("/Page2.xaml", UriKind.Relative) 
}); 

this.RootFrame.UriMapper = mapper; 
+0

नमस्ते, क्या ऐप फ़ाइल में पृथक भंडारण के माध्यम से संचालन करना अच्छा अभ्यास है? –

+0

जब तक आप लंबे परिचालन नहीं करते हैं, यह ठीक होना चाहिए। ऐप फ़ाइल में पृथक संग्रहण तक पहुंचने में कोई समस्या नहीं है, लेकिन आपको अवगत होना चाहिए कि यह कोड आपके एप्लिकेशन के पहले पृष्ठ से पहले निष्पादित होता है। इसलिए, आपके कंप्यूटेशंस करने के लिए आपके पास केवल 5 सेकंड हैं, या आपका ऐप प्रमाणन विफल हो जाएगा। –

+0

5 सेकंड नियम के बारे में जानकारी के लिए Greate, tnx :) और आपका दूसरा समाधान greate काम करता है –