2009-11-18 13 views
5

Una pregunta rápida, he desarrollado una específica C# WPF WebBrowser Foro, para Windows 7.barra de tareas de Windows 7 progreso

He completado hasta el momento para la barra de tareas:

miniaturas con pestañas

Jumplists

Icono de superposición

Ahora que el WebBrowser utiliza el motor de IE cuando se inicia una descarga se muestra el diálogo de progreso, lo i pálido t es para que el progreso se refleje en el botón de la barra de tareas de mi aplicación.

¿Es esto posible? Gracias

+0

¡Bienvenido a SO! Aquí hay una pista: usa más etiquetas cuando hagas preguntas. Ayudé agregando algunos para ti. –

+0

¿Está preguntando cómo obtener el progreso o cómo colocarlo en la barra de tareas? –

Respuesta

3

Creo que esto es algo que Scott Hanselman covered in one of his weekly source code blogs.

No estoy seguro si eso era lo que estabas buscando o no.

+0

Si bien esta respuesta tiene varios años y el enlace es útil, sería mejor que publique las partes esenciales de la respuesta aquí, en este sitio, o su publicación corre el riesgo de ser eliminada [Consulte las preguntas frecuentes donde menciona las respuestas que son 'apenas más que un enlace '.] (http://stackoverflow.com/faq#deletion) Puede incluir el enlace si lo desea, pero solo como' referencia '. La respuesta debería ser independiente sin necesidad del enlace. – Taryn

0

Sé cómo ponerlo en la barra de tareas, solo necesito ver el progreso de la descarga para que pueda mostrar el progreso en la barra de tareas. Aquí hay un fragmento de cómo lo hago para mostrar la navegación, la copia del archivo se muestra sin necesidad de código, el shell está recogiendo eso automáticamente.

#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 

todo eso es necesario para la navegación es:

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

Y tomados de la ventana de carga Evento:

 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; 

la esperanza que esto tiene sentido. Gracias

Cuestiones relacionadas