मैं एक WPF ऐप बना रहा हूं, इसलिए मैं ज्यादातर आइकन के लिए इमेजसोर्स क्लास के साथ काम कर रहा हूं। हालांकि, सिस्टम ट्रे आइकन System.Drawing.Icon
प्रकार होना चाहिए। क्या पीएनजी छवि से ऐसी वस्तु बनाना संभव है?मैं एक पीएनजी छवि से एक आइकन कैसे प्राप्त करूं?
मैं कोशिश की है निम्नलिखित:
private static System.Drawing.Icon _pngIcon;
public static System.Drawing.Icon PngIcon
{
get
{
if (_pngIcon == null)
{
//16x16 png image (24 bit or 32bit color)
System.Drawing.Bitmap icon = global::BookyPresentation.Properties.Resources.star16;
MemoryStream iconStream = new MemoryStream();
icon.Save(iconStream, System.Drawing.Imaging.ImageFormat.Png);
iconStream.Seek(0, SeekOrigin.Begin);
_pngIcon = new System.Drawing.Icon(iconStream); //Throws exception
}
return _pngIcon;
}
}
चिह्न निर्माता निम्न संदेश के साथ एक अपवाद फेंकता है: "। तर्क 'तस्वीर' एक तस्वीर है कि एक चिह्न के रूप में इस्तेमाल किया जा सकता होना चाहिए"
मुझे लगा कि यह छवि रंग की थोड़ी गहराई के साथ कुछ हो सकता है क्योंकि मुझे इससे पहले कुछ समस्याएं थीं, लेकिन 32 बिट और 24 बिट छवियों दोनों काम नहीं कर पाए। क्या यह संभव है कि मैं क्या करने की कोशिश कर रहा हूं?
जब मैं इस विधि का उपयोग करता हूं तो मुझे केवल 16 रंग आइकन मिलते हैं –