2011-05-11 15 views
6

मैं सिस्टम ट्रे में एक आइकन [ए .ico फ़ाइल] प्रदर्शित करना चाहता हूं जिसमें रनटाइम पर कुछ पाठ जोड़े गए हैं। क्या ऐसा करने के लिए कोई मूल WPF तरीका है? या जीडीआई + के लिए स्निपेट भी आभारी होंगे।सी # में आइकन में टेक्स्ट कैसे जोड़ें?

धन्यवाद।

+0

है। – Aren

+0

सिस्टम ट्रे आइकन छोटे हैं। आप कितने पाठ पर फिट होने की उम्मीद करते हैं? – Gabe

+0

बस दो अंक ... – iraSenthil

उत्तर

5

यहाँ मैं काफी हद तक निश्चित सिस्टम ट्रे हो सकता है कि एक टूल टिप यद्यपि के रूप में पाठ का समर्थन नहीं करता :), कर रहा हूँ कोड है कि मेरे लिए काम किया,

public static Icon GetIcon(string text) 
{ 
    //Create bitmap, kind of canvas 
    Bitmap bitmap = new Bitmap(32, 32); 

    Icon icon = new Icon(@"Images\PomoDomo.ico"); 
    System.Drawing.Font drawFont = new System.Drawing.Font("Calibri", 16, FontStyle.Bold); 
    System.Drawing.SolidBrush drawBrush = new System.Drawing.SolidBrush(System.Drawing.Color.White); 

    System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(bitmap); 

    graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixel; 
    graphics.DrawIcon(icon, 0, 0);    
    graphics.DrawString(text, drawFont, drawBrush, 1, 2); 

    //To Save icon to disk 
    bitmap.Save("icon.ico", System.Drawing.Imaging.ImageFormat.Icon); 

    Icon createdIcon = Icon.FromHandle(bitmap.GetHicon()); 

    drawFont.Dispose(); 
    drawBrush.Dispose(); 
    graphics.Dispose(); 
    bitmap.Dispose(); 

    return createdIcon; 
} 
+0

में आइकन कैसे बनाएं I आप एक लाइन को बिटमैप बिटमैप = नया बिटमैप (आइकन। विथथ, आइकन। हाइट) में बदल सकते हैं; –

0

चूंकि सिस्टम ट्रे आइकन में उनके साथ टेक्स्ट नहीं है, तो आप या तो आइकन पर टेक्स्ट को ओवरले कर सकते हैं या टूलटिप-स्टाइल पॉप-अप का उपयोग कर सकते हैं।

ओवरलेइंग टेक्स्ट (शायद इसे एक प्रक्रियात्मक रूप से जेनरेट किए गए आइकन में एम्बेड करके) बहुत मुश्किल होगा, लेकिन अधिक महत्वपूर्ण रूप से एक बुरा विचार है, क्योंकि आइकन को स्पष्ट स्थिति जानकारी प्रदर्शित करने के लिए सबसे अच्छा उपयोग किया जाता है, पॉप में अधिक विस्तृत जानकारी उपलब्ध है -अप पाठ या पॉप-अप विंडो।

उदाहरण के लिए, यदि कोई आइकन इनबॉक्स स्थिति का प्रतिनिधित्व कर रहा है, तो नए मेलों की संख्या दिखाने के बिना "नया मेल" बनाम "नया मेल" दिखाने के लिए पर्याप्त है। यह एक स्पष्ट आइकन प्रदर्शित करने की अनुमति देता है जिसे उपयोगकर्ता द्वारा विस्तार से समझने की आवश्यकता नहीं है।

एक ग्रेयर क्षेत्र एक प्रक्रिया स्थिति का संकेत देने वाला एक आइकन है। आप "पूर्ण" आइकन बनाम "प्रगति पर" हो सकते हैं, लेकिन मैंने उनको एम्बेडेड प्रोग्रेस बार के साथ आइकन देखे हैं, जो मैंने सोचा था कि ऐसा करने का एक साफ तरीका था। जाहिर है कि एक छोटे से आइकन में एक प्रगति पट्टी वास्तव में सटीक संख्यात्मक डेटा प्रदर्शित नहीं कर रही है, और संकल्प के आधार पर स्पष्ट डेटा (बिल्कुल नहीं किया गया, अंश-मार्ग पूर्ण, पूर्ण) व्यक्त करने के करीब हो सकता है।

आप इस दृष्टिकोण का पालन करने का फैसला करते हैं, तो इस लिंक की मदद करनी चाहिए:

  • Code Project article एक आइकन, शो पॉप अप पाठ और एक पॉप-अप विंडो WPF का उपयोग कर परिवर्तित करने का तरीका दिखा।

आप अभी भी एक आइकन पर पाठ डालने आपके उपयोग के मामले गुण महसूस करते हैं, तो मैं procedurally पैदा करने लगता है कि आइकन तरह से यह करने के लिए होने जा रहा है। मुझे लगता है कि आपको टेक्स्ट को पहले किसी छवि में जोड़ना होगा, फिर उसे आइकन में कनवर्ट करना होगा। ये लिंक है कि आपकी मदद चाहिए:

+1

आपको लगता है कि कुछ पाठ के साथ मक्खी पर आइकन उत्पन्न करना बुरा विचार क्यों है? फिर भी आपने मेरे प्रश्न का उत्तर नहीं दिया कि आइकन पर टेक्स्ट कैसे जोड़ें। :( – iraSenthil

+0

मुझे लगता है कि यह आम तौर पर एक बुरा विचार है क्योंकि सटीक संख्यात्मक डेटा की बजाय स्पष्ट जानकारी प्रदर्शित करने के लिए आइकन का उपयोग सबसे अच्छा होता है। मैं इसे स्पष्ट करने के लिए अपना उत्तर अपडेट करूंगा, और प्रक्रियात्मक आइकन निर्माण के लिए कुछ संकेत जोड़ूंगा यदि आप अभी भी जाना चाहते हैं इसके साथ आगे। – Ergwun

+3

मुझे लगता है कि अगर उपयोगकर्ता अनुभव को बढ़ाता है तो कुछ भी बुरा नहीं है – iraSenthil

संबंधित मुद्दे