2009-11-18 13 views
5

त्वरित सवाल है, मैं एक फोरम विशिष्ट सी # WPF WebBrowser विकसित किया है विंडोज 7 के लिएविंडोज 7 टास्कबार प्रगति

मैं अब तक टास्कबार के लिए पूरा कर लिया है,:

टैब किए गए थंबनेल

JumpLists

चिह्न ओवरले

अब WebBrowser आईई इंजन जब एक डाउनलोड करना शुरू कर दिया है प्रगति संवाद प्रदर्शित किया जाता है, मैं क्या वान का उपयोग करता है के रूप में टी मेरे आवेदन के टास्कबार बटन में प्रगति के लिए प्रगति के लिए है।

क्या यह अकल्पनीय है? धन्यवाद

+0

SO में आपका स्वागत है! एक संकेत है: प्रश्न पूछते समय अधिक टैग का उपयोग करें। मैंने आपके लिए कुछ जोड़कर मदद की। –

+0

क्या आप पूछ रहे हैं कि प्रगति कैसे प्राप्त करें या इसे टास्कबार में कैसे रखा जाए? –

उत्तर

3

मुझे विश्वास है कि यह कुछ ऐसा है जो Scott Hanselman covered in one of his weekly source code blogs है।

यह सुनिश्चित नहीं है कि वह वही था जो आप खोज रहे थे या नहीं।

+0

हालांकि यह उत्तर कई साल पुराना है और लिंक उपयोगी है यदि आप यहां उत्तर के आवश्यक हिस्सों को पोस्ट करते हैं, इस साइट पर, या आपके पोस्ट जोखिमों को हटाया जा रहा है [एफएक्यू देखें जहां यह उन उत्तरों का उल्लेख करता है जो 'मुश्किल से' हैं एक लिंक से अधिक '।] (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 

सभी thats नेविगेशन के लिए आवश्यक है:

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; 

आशा इस समझ में आता है। धन्यवाद

संबंधित मुद्दे