खोज…


परिचय

जैसे ही एप्लिकेशन में कई पृष्ठ / स्क्रीन होते हैं, उनके बीच नेविगेट करने के एक तरीके की आवश्यकता होती है। UWP अनुप्रयोगों के साथ, नेविगेशन को [फ़्रेम] [1] नियंत्रण द्वारा नियंत्रित किया जाता है। यह [पेज] [२] उदाहरणों को प्रदर्शित करता है, नए पृष्ठों को नेविगेशन का समर्थन करता है और पिछड़े और आगे के नेविगेशन दोनों के लिए एक इतिहास रखता है [१]: https://msdn.microsoft.com/en-us/library/windows/apps/ windows.ui.xaml.controls.frame.aspx [2]: https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.page.aspx

फ्रेम बनाएं

एक फ्रेम किसी अन्य नियंत्रण की तरह बनाया जाता है:

<Frame x:Name="contentRoot"
       Navigated="OnNavigated"
       Navigating="OnNavigating" />

तब नेविगेट / नेविगेट करने की घटनाओं को नेविगेशन रद्द करने या बैक बटन को दिखाने / छिपाने के लिए इंटरसेप्ट किया जा सकता है।

private void OnNavigating(object sender, NavigatingCancelEventArgs e)
{
    if(contentRoot.SourcePageType  == e.SourcePageType && m_currentPageParameter == e.Parameter)
   {
       // we are navigating again to the current page, we cancel the navigation
       e.Cancel    = true;
   }
}

private void OnNavigated(object sender, NavigationEventArgs e)
{
    // user has navigated to a newest page, we check if we can go back and show the back button if needed.
    // we can also alter the backstack navigation history if needed
    SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = (contentRoot.CanGoBack ? AppViewBackButtonVisibility.Visible : AppViewBackButtonVisibility.Collapsed);  
}

एक नए पृष्ठ पर नेविगेट करें

एक नए पृष्ठ पर नेविगेट करने के लिए, हम फ़्रेम से नेविगेट () विधि का उपयोग कर सकते हैं।

contentRoot.Navigate(typeof(MyPage), parameter);

जहां contentRoot फ़्रेम इंस्टेंस और MyPage पेज से इनहेरिट करने वाला नियंत्रण है

MyPage , नेविगेशन पूरा होने के बाद OnNavigatedTo () विधि को कॉल किया जाएगा (यानी जब उपयोगकर्ता पृष्ठ में प्रवेश करेगा) हमें पेज डेटा के लोडिंग को ट्रिगर करने या अंतिम रूप देने की अनुमति देगा। OnNavigatedFrom () विधि को बुलाया जाएगा, जब पृष्ठ को छोड़ने के लिए हमें जारी करने की अनुमति देगा जो जारी किया जाना है।

public class MyPage : Page
{
    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        // the page is now the current page of the application. We can finalized the loading of the data to display
    }

    protected override void OnNavigatedFrom(NavigationEventArgs e)
    {
        // our page will be removed from the screen, we release what has to be released
    }
}

OnNavigatingFrom का उपयोग करके नेविगेशन अनुरोध की पुष्टि करना

private bool navigateFlag = false;

protected async override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
    base.OnNavigatingFrom(e);

    if (!navigateFlag)
        {
            e.Cancel = true;

            var dialog = new MessageDialog("Navigate away?", Confir,);
            dialog.Commands.Add(new UICommand("Yes", null, 0));
            dialog.Commands.Add(new UICommand("No", null, 1);

            dialog.CancelCommandIndex = 1;
            dialog.DefaultCommandIndex = 0;

            var result = await dialog.ShowAsync();

            if (Convert.ToInt16(result.Id) != 1)
            {
                navigateFlag= true;
                this.Frame.Navigate(e.SourcePageType);
            }
           
        }

    }


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow