4

我有一个 Silverlight 4 oob 应用程序的页面。安装应用程序后,页面上的包应该会自动刷新。我尝试从 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:项目文件

4

1 回答 1

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 上安装后刷新。

于 2011-08-17T12:56:25.713 回答