0

我有一个带有 webbrowser 控件的应用程序。当我在该控件中导航然后走开一点,然后回到它(由于不活动而解锁屏幕后),第一个/原始页面再次出现。如何维护浏览器的状态?

4

2 回答 2

2

在 App.xaml.cs 中定义一个公共属性 Url 来存储一个 Url

public Uri Url { get; set; }

在 WebBrowser_LoadCompleted 事件中:将包含当前加载的 Url 的 WebBrowser.Source 属性保存到 Application 类的 Url 属性的上方。

App app = Application.Current as App; 
app.Url = WebBrowser.Source;

在 Application_Deactivated 事件(将应用程序发送到后台),将当前应用程序的状态保存到 IsolatedStorage

IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
settings["Url"] = Url;
settings.Save();

在 Application_Launching 事件(恢复应用程序)上,将存储的数据拉回

IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
Url currentUrl;
if (settings.TryGetValue("Url", out currentUrl)) 
   Url = (Uri)settings["Url"];

然后从恢复的 Url 中,您可以重新加载上次导航的页面。

App app = Application.Current as App;
WebBrowser.Navigate(app.Url);
于 2013-05-13T09:22:09.433 回答
1

你可以试试这个:

bool isNew = true;

protected override void OnNavigatedTo(NavigationEventArgs e)
     {
        base.OnNavigatedTo(e);
        isNew = false;
}

此属性将一直保留到您的页面关闭为止,因此您可以使用它来测试这是否是您的页面第一次被导航到。

于 2014-06-10T12:13:36.003 回答