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