2009-11-18 2 views
5

Быстрый вопрос, я разработал Форум конкретные C# WPF WebBrowser для Windows 7.панель задач Windows 7 прогресс

Я закончил до сих пор на панель задач:

Tabbed эскизы

Jumplists

Icon Overlay

Теперь как WebBrowser использует движок IE, когда загрузка началась отображается диалоговое окно прогресса, что я Вань t означает, что прогресс будет отражен в кнопке панели задач моего приложения.

Возможно ли это? Спасибо

+0

Добро пожаловать в SO! Heres подсказка: используйте больше тегов при задании вопросов. Я помог, добавив некоторые для вас. –

+0

Вы спрашиваете, как добиться прогресса или как его разместить на панели задач? –

ответ

3

Я считаю, что это то, что Scott Hanselman covered in one of his weekly source code blogs.

Не уверен, что это было то, что вы искали или нет.

+0

Хотя этот ответ несколько лет, и ссылка полезна, было бы лучше, если бы вы разместили существенные части ответа здесь, на этом сайте или удалили свой пост. [См. FAQ, где в нем упоминаются ответы, которые «едва больше, чем ссылка '.] (http://stackoverflow.com/faq#deletion). Вы можете по-прежнему включать ссылку, если хотите, но только как ссылку. Ответ должен стоять сам по себе, не нуждаясь в ссылке. – Taryn

0

Я знаю, как поместить его в панель задач, мне просто нужно поймать ход загрузки, чтобы я мог показать прогресс на панели задач. Вот фрагмент того, как я могу показать навигацию, копия файла отображается без кода, оболочка автоматически выбирает ее.

#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 

Все то будет нужно для НАВИГАЦИЯ:

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

и взято из окна Event Load:

 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; 

Надеется, что это имеет смысл. Спасибо