2017-08-28 231 views
0

我正在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 

我的問題與最後一行代碼。如何爲不同的標籤設置不同的圖標?如何跟蹤哪個圖標屬於哪個標籤?

回答

0

嗯,它花了我一段時間。但我知道了。對於任何面臨同樣問題的人,這裏是解決方案。

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]; 
    }