在WPF

2010-06-09 56 views
1

使用Windows窗體圖標我有這個WPF代碼工程...在WPF

Uri iconUri = new Uri("pack://application:,,,/media/images/VS.ico", UriKind.RelativeOrAbsolute); 
this.Icon = BitmapFrame.Create(iconUri); 

我使用的是Windows窗體NotifyIcon的在我的WPF應用程序的控制,而我現在需要assing的它的圖標。我如何從我的WPF圖標獲取System.Drawing.Icon?

回答

2

我用下面的方法:

// Setup the new NotifyIcon 
System.Windows.Forms.NotifyIcon notifyIcon = new System.Windows.Forms.NotifyIcon(); 
notifyIcon.Text = "Name of Application"; 
notifyIcon.Icon = new System.Drawing.Icon("media/images/VS.ico"); 
notifyIcon.Visible = true; 

確保你添加引用System.Drawing中。

+0

布倫特,我看不到運行代碼後的系統托盤圖標,雖然它的構建正常。我的圖標位於資源中。也許這就是問題所在? ... Uri iconUri = new Uri(「pack:// application:,,,/media/images/VS.ico」,UriKind.RelativeOrAbsolute); – flobadob 2010-06-09 15:44:12

+0

我當前的代碼看起來像這樣... private void Window_Loaded(object sender,RoutedEventArgs e) { notifyIcon = new System.Windows.Forms.NotifyIcon(); Uri iconUri = new Uri(「pack:// application:,,,/media/images/VS.ico」,UriKind.RelativeOrAbsolute); this.Icon = BitmapFrame.Create(iconUri); //這樣工作,所以URI工作正常 notifyIcon.Text =「應用程序名稱」; notifyIcon.Icon = new System.Drawing.Icon(「/ media/images/VS.ico」); notifyIcon.Visible = true; //沒有顯示在系統托盤中 } – flobadob 2010-06-09 15:47:22

+0

可能...我使用的圖標具有內容的構建操作,並且我將該圖標複製到輸出目錄。我會更新我的答案... – Brent 2010-06-09 15:50:29

0

Imaging.CreateBitmapSourceFromHBitmap

我用它喜歡:

return Imaging.CreateBitmapSourceFromHBitmap(source.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); 

其中source是Bitmap,您可以致電Icon.ToBitmap()方法獲得。

+0

我無法在任何地方看到ToBitmap方法。它是什麼類的成員?謝謝。 – flobadob 2010-06-09 15:32:57

+0

您接受了其他答案,但爲了保持完整性,請http://msdn.microsoft.com/en-us/library/system.drawing.icon.tobitmap%28v=VS.100%29.aspx。也許我只是混淆了WinForms/WPF Icon類。 – JustABill 2010-06-09 16:58:39