快速的问题,我已经开发了特定的论坛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提示:在提问时使用更多标签。我帮你添加了一些。 –
您是在问如何获得进度或如何将其放入任务栏? –