簡體   English   中英

從導航堆棧和WebBrowserTask中刪除當前頁面

[英]Remove the current page from the navigation stack and WebBrowserTask

我有一個調用WebBrowserTask的頁面。 當用戶從瀏覽器返回時,我不想顯示啟動任務的頁面,而是上一個。

問題是導航堆棧不包含當前頁面,並且我無法從頁面條目中將其刪除,並且WebBrowserTask不允許我們執行任何操作。

在Android上,我可以指定不將特定活動添加到后台堆棧中。 有這樣的東西嗎?

當前,我發現幾乎完成我想做的事情的唯一方法是在調用任務時設置一個標志,並在頁面的OnNavigatedTo處理程序中對其進行檢查。 但是在返回前幾秒鍾,該頁面仍然可見。 這不好。

謝謝。

我尚未對此進行測試,但是您可以執行以下操作

bool navigatedFromBrowser;
public MainPage()
{
    navigatedFromBrowser = false;
}
public void someMethod()
{
    WebBrowserTask webBrowserTask = new WebBrowserTask();
    webBrowserTask.Uri = new Uri("http://msdn.microsoft.com", UriKind.Absolute);
    webBrowserTask.Show();
    navigatedFromBrowser = true;
}
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
{
    if(navigatedFromBrowser && NavigationService.CanGoBack)
    {
        navigatedFromBrowser = false;
        NavigationService.GoBack();
    }

}

這可能是一個丑陋的方式,但可能會起作用。 navigationdFromBrowser應該保留其值,因為當從瀏覽器中導航回來時,它將與頁面相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM