मैं छवियों को एक आइकन में सेट करने की कोशिश कर रहा हूं, एक .ico फ़ाइल से दो आइकन: 32x32 संस्करण और 16x16 संस्करण। छवियां सेटिंग हैं, लेकिन नेट 32x32 संस्करण चुन रहा है, और आसानी से उपलब्ध 16x16 छवि को चुनने के बजाय इसे स्केल कर रहा है (जो भयानक लग रहा है)।सी #: एकाधिक छवियों के साथ .ico फ़ाइल का उपयोग
प्रासंगिक कोड:
ilTree.Images.Add(Properties.Resources.group);
ilTree.Images.Add(Properties.Resources.single);
ilTree.Images.Add(Properties.Resources.db);
treeStored.ImageList = ilTree;
कहाँ मैं गलत हो रहा हूँ?
उत्तर:
वहाँ दो चीजें आप क्या करना चाहिए इस काम करने के लिए मिल रहे हैं। नीचे वर्णित पहला, छवि सूची में सही आकार को मैन्युअल रूप से निर्दिष्ट करना है। दूसरा यह है कि आपको शायद रंग गहराई को भी निर्दिष्ट करना होगा। एमएसडीएन ने कहा है कि:
.NET Framework संस्करण 1.1 या बाद में, डिफ़ॉल्ट Depth8Bit है।
... हालांकि, छविइस्ट को मेरे 8-बिट आइकन से रंग हटाने से नहीं रोका। नज़दीकी निरीक्षण पर, मेरे आइकन (तीन थे) थे: 4 बिट, 4 बिट, 8 बिट। दो 4 बिट आइकनों ने पैलेट साझा किए, हालांकि 8 बिट के पास एक अलग था। कुल मिलाकर, आइकन के बीच 257 रंग थे। केवल मामूली ओवरफ्लो के बावजूद, नेट ने इसे केवल रंगों तक दबा दिया।
अच्छा, यह काम करता है। हालांकि यह निश्चित रूप से बहुत अच्छा होगा अगर ट्री व्यू सिर्फ सही चीज ™ करेगा ... – Thanatos
असल में, बिल्कुल नहीं। यह - ilTree.ColorDepth = ColorDepth.Depth24Bit; - भी जरूरी है। अन्यथा, ऐसा लगता है कि यह गलत है (गलत) 16-बिट। – Thanatos
डिफ़ॉल्ट 8-बिट है, लेकिन इसे उन छवियों को लोड करना चाहिए जिनके साथ आपने पहले कभी रंगीन गहराई निर्दिष्ट की है। – snarf