快速的問題,我已經開發了特定的論壇C#WPF web瀏覽器,適用於Windows 7Windows 7任務欄進度
到目前爲止任務欄我已經完成:
分頁縮略圖
跳轉列表
圖標疊加
現在,當WebBrowser在啓動下載時使用IE引擎時,會顯示進度對話框, t表示進度將反映在我的應用程序的任務欄按鈕中。
這是不可能的嗎?謝謝
快速的問題,我已經開發了特定的論壇C#WPF web瀏覽器,適用於Windows 7Windows 7任務欄進度
到目前爲止任務欄我已經完成:
分頁縮略圖
跳轉列表
圖標疊加
現在,當WebBrowser在啓動下載時使用IE引擎時,會顯示進度對話框, t表示進度將反映在我的應用程序的任務欄按鈕中。
這是不可能的嗎?謝謝
我相信這是Scott Hanselman covered in one of his weekly source code blogs。
不知道這是否是你正在尋找或沒有。
儘管這個答案已經有幾年了,而且鏈接很有幫助,但是如果你在這裏,在這個網站上發佈了答案的重要部分,或者你的帖子風險被刪除了,那會更好[參見常見問題解答多於一個鏈接'。](http://stackoverflow.com/faq#deletion)如果您願意,您可能仍然包含鏈接,但僅作爲「參考」。答案應該獨立,不需要鏈接。 – Taryn
我知道如何將它放在任務欄中,我只需要捕獲下載進度,以便我可以在任務欄中顯示進度。下面是我如何顯示導航的片段,文件副本顯示時不需要代碼,shell會自動選擇它。
#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;
希望這是有道理的。謝謝
歡迎來到SO! Heres提示:在提問時使用更多標籤。我幫你添加了一些。 –
您是在問如何獲得進度或如何將其放入任務欄? –