如何更改标签页在c#浏览器中更改时的favicon?
问题描述:
我正在c#中创建一个浏览器。我想根据浏览器地址在每个标签页中添加favicon。我有以下代码返回当前地址的图标。如何更改标签页在c#浏览器中更改时的favicon?
WebClient wc = new WebClient();
MemoryStream memorystream = new MemoryStream(wc.DownloadData("http://" + new Uri(getCurrentBrowser().Address.ToString()).Host + "/favicon.ico"));
Icon icon = new Icon(memorystream);
imageList.Images.Add(icon.ToBitmap());
tabControl.SelectedTab.ImageIndex = 0; // sets favicon in current tab
我的问题与最后一行代码。如何为不同的标签设置不同的图标?如何跟踪哪个图标属于哪个标签?
答
嗯,它花了我一段时间。但我知道了。对于任何面临同样问题的人,这里是解决方案。
public void favicon()
{
WebClient wc = new WebClient();
MemoryStream memorystream = new MemoryStream(wc.DownloadData("http://" + new Uri(getCurrentBrowser().Address.ToString()).Host + "/favicon.ico"));
Icon icon = new Icon(memorystream);
string i = Convert.ToString(myimg.Images.Count);
myimg.Images.Add(i, icon.ToBitmap());
tabControl.ImageList = myimg;
tabControl.SelectedTab.ImageIndex = myimg.Images.Count - 1;
}
在浏览器标题更改方法中调用它。和getCurrentBrowser()
返回当前浏览器。这里是代码:
// get current browser
public ChromiumWebBrowser getCurrentBrowser()
{
return (ChromiumWebBrowser)tabControl.SelectedTab.Controls[0];
}