2011-03-27 12 views
5

आप Windows Vista या ऊपर का उपयोग करते हैं, तो आप शायद टूलटिप के इस प्रकार देखा है, रंग का पाठ और आइकन के साथ:सी # में विंडोज एक्सप्लोरर/एयरो स्टाइल टूलटिप्स?

enter image description here

मैं विभिन्न खोजशब्दों उदा का उपयोग कर खोज की है एक्सप्लोरर, एयरो, विंडोज़, टूलटिप्स, और इसे प्राप्त करने के तरीके पर किसी भी उपयोगी जानकारी में नहीं आया है।

अधिमानतः, मैं WinForms के लिए समाधान करना चाहता हूं। क्या किसी के पास कोई भाग्य है?

+0

ओह, आइकन के साथ? मुझे तब इसके बारे में पता नहीं है (मान लीजिए कि आप WinForms का उपयोग कर रहे हैं)। – BoltClock

उत्तर

8

wyDay पर यह blog post समाधान है।

यह एक 3 हिस्सा ".NET में शेल शैली खींचें और छोड़ें" कहा जाता है श्रृंखला के लिए लिंक:

भाग this archive को 3 लिंक, जिसमें परियोजनाओं का एक पूरा समूह शामिल है। ध्यान दें कि संकलित करने के लिए, आपको असुरक्षित कोड की अनुमति देने के लिए DragDropLib और WpfDragDropLib प्रोजेक्ट्स सेट करने की आवश्यकता हो सकती है।

वहाँ नमूने के अंदर है, लेकिन सुविधा के लिए, यहाँ एक उद्धरण है:

#region Drop target accepting FileDrop 

private void textBox2_DragEnter(object sender, DragEventArgs e) 
{ 
    if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
    { 
     e.Effect = e.AllowedEffect & DragDropEffects.Copy; 
     DropTargetHelper.DragEnter(textBox2, e.Data, new Point(e.X, e.Y), e.Effect, "Copy to %1", "Here"); 
    } 
    else 
    { 
     e.Effect = DragDropEffects.None; 
     DropTargetHelper.DragEnter(textBox2, e.Data, new Point(e.X, e.Y), e.Effect); 
    } 
} 

private void textBox2_DragOver(object sender, DragEventArgs e) 
{ 
    if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
     e.Effect = e.AllowedEffect & DragDropEffects.Copy; 
    else 
     e.Effect = DragDropEffects.None; 
    DropTargetHelper.DragOver(new Point(e.X, e.Y), e.Effect); 
} 

private void textBox2_DragLeave(object sender, EventArgs e) 
{ 
    DropTargetHelper.DragLeave(textBox2); 
} 

private void textBox2_DragDrop(object sender, DragEventArgs e) 
{ 
    if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
     e.Effect = e.AllowedEffect & DragDropEffects.Copy; 
    else 
     e.Effect = DragDropEffects.None; 
    DropTargetHelper.Drop(e.Data, new Point(e.X, e.Y), e.Effect); 

    if (e.Effect == DragDropEffects.Copy) 
     AcceptFileDrop(textBox2, e.Data); 
} 

#endregion // Drop target accepting FileDrop 

मेरे प्रयोग से ऐसा लगता है कि मैं सिर्फ e.Effect = DragDropEffects.Copy; बजाय e.Effect = e.AllowedEffect & DragDropEffects.Copy; लिख सकते हैं; हालांकि मैं वर्तमान में समझ नहीं पा रहा हूं कि & क्या है, इसलिए कोई भी इसके साथ मेरी सहायता करने में सक्षम हो सकता है। साथ ही, ऐसा लगता है कि टेक्स्ट ड्रॉप प्रकार विवरण टूलटिप नहीं दिखाएगा।

अन्यथा, मैं निश्चित रूप से इससे बहुत खुश हूं।

आशा है कि इससे इस मुद्दे के साथ किसी को भी मदद मिलेगी।

+0

कूल - जानकारी साझा करने के लिए धन्यवाद। मुझे संदेह है कि "e.AllowedAffect &" इस तथ्य को पारित करने के लिए एक बिटमास्क है कि e.Effect ईवेंट श्रृंखला में अगले हैंडलर के लिए मान्य है। – holtavolt

4

आप किस तकनीक का उपयोग करना चाहते हैं? डब्ल्यूपीएफ या WinForms? यदि आप WPF का उपयोग करते हैं तो आप Popup नियंत्रण का उपयोग करके अपने स्वयं के टूलटिप को कार्यान्वित कर सकते हैं और कस्टम टूलटिप को स्वयं लागू कर सकते हैं।

आपको माउस टूल ईवेंट पर अपने टूलटिप पॉपअप को संलग्न करना होगा और नियंत्रण को अपेक्षाकृत माउस कर्सर पर रखना होगा।

यह विधि केवल छोटे प्रयास की आवश्यकता है और आप की पेशकश करने के लिए सब कुछ WPF है का उपयोग कर अपने टूलटिप अनुकूलित कर सकते हैं - छवियों, एनिमेशन, आदि

संसाधन WPF:

शायद WinForms के पास एक पॉपअप नियंत्रण है। खुद को कार्यान्वित करना भी बहुत मुश्किल नहीं होना चाहिए।

डिज़ाइनर का उपयोग न करने वाले WinForms में नियंत्रण की स्थिति को कैसे देखें (सुनिश्चित करें कि आपका नियंत्रण अन्य सभी नियंत्रणों के शीर्ष पर स्थित है)। यदि आपको यह गोंद माउस माउस घटनाओं के माध्यम से अपने माउस कर्सर पर अपनी स्थिति मिली है और आप कर चुके हैं।

संसाधन WinForms:

+0

पसंदीदा रूप से WinForms, क्योंकि मैं दोनों लोड नहीं किया गया था, खासकर जब से WPF ऐप्स लोड करने में अधिक समय लगते हैं। – unrelativity

+0

मुझे नहीं लगता कि buildin टूलटिप को स्टाइल करने का कोई तरीका है। मैं अपना मुख्य पोस्ट संपादित कर रहा हूं। – Zebi

+0

शायद यह मदद करता है: http://andrusdevelopment.blogspot.com/2007/10/implementing-custom-tooltip-in-c.html – Zebi

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