4

I have a page with Silverlight 4 oob app. After app is installed the bage on the page should automatically refresh. I tried calling the scripts or simple Document.Submit from code on InstallStateChanged - and they all worked well on win XP (not only on my machine), but on Win 7 or Vista the page hangs or even silverlight plugin crashes before the installation beginning. However without refresh function on the installation process flows smoothly. How should I do the correct refresh for those systems? The info why this can happen will be helpful too.

    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();
        }
    }

Where MainPage and installedPage are simple grids with text field. Install Page contains only button with click event - to install the App. The web page is auto generated one. Nothing more. Still on Win 7 and Vista have the same prob while install as they had.

UPD: project files

Ritro
  • 148
  • 3
  • 10

1 Answers1

3

I have changed your test case like this:

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();
    }
}

And it refreshes upon install on windows 7 fine.

Zee
  • 901
  • 10
  • 21