2015-09-24 21 views
3

我想設置圖標這樣的窗口:是什麼導致了圖標上的外掛?

var bitmapImage = new System.Windows.Media.Imaging.BitmapImage(new Uri(@"http://google.com/favicon.ico")); 
this.Icon = bitmapImage; 

然而,當圖標呈現,它顯示了它周圍的黑色邊框,如下圖所示的圖像:

Black outline over the logo

任何人都可以引導這個輪廓來自哪裏,我該如何防止它?

在此先感謝。

+1

奇怪,從來沒有聽說過這個。 –

+1

邊框似乎是由於圖標中的alpha透明度轉換爲不具有alpha透明度的位圖。所有不完全透明的像素都被轉換爲完全不透明。我不確定如何解決它,因爲我從來沒有在.NET中使用過,但是也許可以使用[IconBitmapDecoder](https://msdn.microsoft.com/en-us/library /system.windows.media.imaging.iconbitmapdecoder(v=vs.110).aspxsv) – GolezTrol

+0

@GolezTrol是的。我試過了。 IconBitmapDecoder的作用就像一個魅力。非常感謝你的幫助。 –

回答

3

試過自己,這會呈現一個邊框圖標:

Icon = new BitmapImage(new Uri(@"pack://application:,,,/favicon.ico")); 

,這將不是:

Icon = new IconBitmapDecoder(new Uri(@"pack://application:,,,/favicon.ico"), 
          BitmapCreateOptions.None, BitmapCacheOption.Default).Frames[0]; 

所以,BitmapImage的執行一些轉換,導致不透明邊界。

+1

是的。這工作。非常感謝。 –

相關問題