我有一个Silverlight 4 oob应用程序的页面。安装应用程序后,页面上的bage应自动刷新。 我尝试从InstallStateChanged上的代码调用脚本或简单的Document.Submit - 它们在win XP上都运行良好(不仅在我的机器上),但在Win 7或Vista上,页面挂起甚至Silverlight插件在安装开始之前崩溃。但是没有刷新功能,安装过程顺利进行。 我该如何为这些系统进行正确的刷新?为什么会发生这种情况也会有所帮助。
public App ()
{
this.Startup += this.Application_Startup;
this.Exit += this.Application_Exit;
this.UnhandledException += this.Application_UnhandledException;
InitializeComponent();
App.Current.InstallStateChanged += (s, c) => HtmlPage.Document.Submit(); //used that as the most common used example
}
private void Application_Startup (object sender, StartupEventArgs e)
{
if (Application.Current.IsRunningOutOfBrowser)
{
this.RootVisual = new MainPage();
} else if (Application.Current.InstallState == InstallState.Installed)
{
this.RootVisual = new InstalledPage();
} else
{
this.RootVisual = new InstallPage();
}
}
其中MainPage和installedPage是带有文本字段的简单网格。安装页面仅包含点击事件的按钮 - 安装应用程序。网页是自动生成的。而已。仍然在Win 7和Vista上有相同的概率,因为他们有安装。
UPD:project files
答案 0 :(得分:3)
我已经改变了你的测试用例:
public App () {
...
App.Current.InstallStateChanged += new EventHandler(Current_InstallStateChanged);
}
void Current_InstallStateChanged(object sender, EventArgs e) {
if(App.Current.InstallState == System.Windows.InstallState.Installed) {
HtmlPage.Document.Submit();
}
}
并且在Windows 7上安装时会刷新。