2009-11-18 6 views
5

Domanda rapida, ho sviluppato una specifica C# WPF WebBrowser Forum, per Windows 7.Windows 7 Taskbar progresso

Ho completato finora per la barra delle applicazioni:

miniature a schede

Jumplists

Icon Overlay

Ora, come il browser web utilizza il motore di IE, quando un download viene avviato viene visualizzata la finestra di avanzamento, quello che ho wan t è per il progresso che si rifletterà nel pulsante sulla barra delle applicazioni della mia applicazione.

È accettabile? Grazie

+0

Benvenuti in SO! Ecco un suggerimento: usa più tag quando fai domande. Ho aiutato con l'aggiunta di alcuni per te. –

+0

Stai chiedendo come ottenere i progressi o come metterlo nella barra delle applicazioni? –

risposta

3

Credo che questo sia qualcosa che Scott Hanselman covered in one of his weekly source code blogs.

Non so se fosse quello che stavi cercando o meno.

+0

Anche se questa risposta ha diversi anni e il collegamento è utile, sarebbe meglio se pubblichi le parti essenziali della risposta qui, su questo sito, o il tuo post rischia di essere eliminato [Vedi le FAQ dove si menzionano le risposte che sono "a malapena più di un link '.] (http://stackoverflow.com/faq#deletion) Puoi ancora includere il link se lo desideri, ma solo come un "riferimento". La risposta dovrebbe essere autonoma senza bisogno del collegamento. – Taryn

0

So come inserirlo nella barra delle applicazioni, ho solo bisogno di prendere l'avanzamento del download in modo da poter mostrare i progressi nella barra delle applicazioni. Ecco un frammento di come ottengo che mostri la navigazione, la copia del file viene visualizzata senza la necessità di codice, la shell la preleva automaticamente.

#region Background Worker 

    void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) 
    { 
     this.TaskbarItemInfo.ProgressValue = (double)e.ProgressPercentage/100; 

    } 

    void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 
    { 
     if (e.Cancelled == true) 
     { 
      this.TaskbarItemInfo.ProgressState = TaskbarItemProgressState.Paused; 
     } 
     else if (e.Error != null) 
     { 
      this.TaskbarItemInfo.ProgressState = TaskbarItemProgressState.Error; 
     } 
     else 
     { 
      this.TaskbarItemInfo.ProgressState = TaskbarItemProgressState.None; 
     } 
    } 

    void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) 
    { 
     for (int i = 1; i <= 100; i++) 
     { 
      Thread.Sleep(100); 

      this.backgroundWorker1.ReportProgress(i,i.ToString()); 
     } 
      } 
     } 
    } 

    #endregion 

Tutti i thats necessari per la navigazione è:

private void Browser_Navigated(object sender, WebBrowserNavigatedEventArgs e) 
    { 
     if (backgroundWorker1.IsBusy == false) 
     { 
      backgroundWorker1.RunWorkerAsync(); 

      TaskbarItemInfo.ProgressState = TaskbarItemProgressState.Normal; 
     } 

     if (tabControl1.TabPages.Count > 10 && tabControl1.SelectedTab != null) 
      UpdatePreviewBitmap(tabControl1.SelectedTab); 

E presi dalla finestra Evento di carico:

 this.backgroundWorker1.WorkerReportsProgress = true; 
     this.backgroundWorker1.WorkerSupportsCancellation = true; 
     this.backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork); 
     this.backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted); 
     this.backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged); 

     // 
     TabbedThumbnail preview = new TabbedThumbnail(this.Handle, tabPage.Handle); 
     // 
     preview.TabbedThumbnailActivated += new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailActivated); 
     preview.TabbedThumbnailClosed += new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailClosed); 
     preview.TabbedThumbnailMaximized += new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailMaximized); 
     preview.TabbedThumbnailMinimized += new EventHandler<TabbedThumbnailEventArgs>(preview_TabbedThumbnailMinimized); 
     // 
     TaskbarManager.Instance.TabbedThumbnail.AddThumbnailPreview(preview); 
     // 
     tabControl1.SelectedTab = tabPage; 
     TaskbarManager.Instance.TabbedThumbnail.SetActiveTab(tabControl1.SelectedTab); 
     // 

     scrollEventAdded = false; 

Spero che questo ha un senso. Grazie