2009-11-18 6 views
5

빠른 질문, 내가 지금까지 작업 표시 줄에 완료윈도우 7 작업 표시 줄 진행

윈도우 7를 들어, 포럼 특정 C#을 WPF의 웹 브라우저를 개발했습니다 :

탭 미리보기

점프리스트

아이콘 오버레이

이제 다운로드가 시작될 때 WebBrowser가 IE 엔진을 사용하므로 진행 대화 상자가 표시됩니다. 진행 상황이 내 응용 프로그램의 작업 표시 줄 단추에 반영됩니다.

가요? 감사합니다

+0

에 오신 것을 환영합니다! 힌트 : 질문 할 때 더 많은 태그를 사용하십시오. 나는 너를 위해 몇 가지를 추가하여 도왔다. –

+0

진행률을 얻는 방법이나 작업 표시 줄에 넣는 방법을 묻는 중입니까? –

답변

3

나는 이것이 Scott Hanselman covered in one of his weekly source code blogs이라고 생각합니다.

당신이 찾고있는 것인지 확실하지 않은지 확실하지 않습니다.

+0

이 답변은 몇 년 된 것이지만 링크가 도움이된다면이 사이트의 대답의 핵심 부분을 게시하거나 게시물의 위험 요소를 삭제하면 도움이 될 것입니다 [자주 묻는 질문을 참조하십시오. more than a link '.] (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); 

그리고 창로드 이벤트에서 촬영 한이 말이

 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; 

희망. 감사합니다