2009-11-18 11 views
5

question rapide, j'ai développé un particulier C# Forum WPF WebBrowser, pour Windows 7.Windows 7 Taskbar progrès

J'ai terminé jusqu'à présent pour la Barre des tâches:

miniatures

Tabbed

Jumplists

icône de recouvrement

maintenant que le navigateur Web utilise le moteur IE lorsqu'un téléchargement est démarré la boîte de dialogue de progression apparaît, ce que je wan La progression doit être reflétée dans le bouton de la barre des tâches de mon application.

Est-ce réalisable? Merci

+0

Bienvenue à SO! Heres un indice: utilisez plus de balises lorsque vous posez des questions. J'ai aidé en en ajoutant pour vous. –

+0

Demandez-vous comment obtenir la progression ou comment la mettre dans la barre des tâches? –

Répondre

3

Je crois que c'est quelque chose que Scott Hanselman covered in one of his weekly source code blogs.

Je ne sais pas si c'était ce que vous cherchiez ou non.

+0

Bien que cette réponse date de plusieurs années et que le lien soit utile, il serait préférable que vous postiez les parties essentielles de la réponse ici, sur ce site, ou que votre message risque d'être supprimé [Voir la FAQ]. plus qu'un lien '.] (http://stackoverflow.com/faq#deletion) Vous pouvez toujours inclure le lien si vous le souhaitez, mais seulement en tant que' référence '. La réponse devrait se suffire à elle-même sans avoir besoin du lien. – Taryn

0

Je sais comment le mettre dans la barre des tâches, j'ai juste besoin d'observer la progression du téléchargement pour pouvoir montrer la progression dans la barre des tâches. Heres un extrait de la façon dont je l'obtiens pour montrer la navigation, la copie de fichier est affichée sans le besoin de code, shell récupère cela automatiquement.

#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 

tous les thats nécessaires pour la navigation est:

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

et pris de la charge de la fenêtre de l'événement:

 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; 

Hope this sens. Merci