2009-01-20 20 views
9

मैंने टास्कबार में चलाए गए एक एप्लिकेशन को बनाया है। जब कोई उपयोगकर्ता एप्लिकेशन पर क्लिक करता है तो यह पॉप अप करता है। मैं जो चाहूंगा वह एमएसएन में समान कार्यक्षमता है जब मेरे एक दोस्त लॉग इन करता है। जाहिर है यह टोस्ट पॉपअप के रूप में जाना जाता है? मैं मूल रूप से टास्कबार में एप्लिकेशन के हर 20 मिनट टोस्ट शैली से पॉपअप करने के लिए कुछ चाहता हूं।मेरे आवेदन के लिए टोस्ट स्टाइल पॉपअप

मेरे मौजूदा अनुप्रयोग WinForms .net 3.5

चीयर्स

उत्तर

21

यह बहुत सरल है के साथ सी # में लिखा आधारित है। आपको बस ऑफ-स्क्रीन क्षेत्र में विंडो सेट करने और इसकी स्थिति को एनिमेट करने की आवश्यकता है जब तक कि यह पूरी तरह से दिखाई न दे। यहां एक नमूना कोड है:

public partial class Form1 : Form 
{ 
    private Timer timer; 
    private int startPosX; 
    private int startPosY; 

    public Form1() 
    { 
     InitializeComponent(); 
     // We want our window to be the top most 
     TopMost = true; 
     // Pop doesn't need to be shown in task bar 
     ShowInTaskbar = false; 
     // Create and run timer for animation 
     timer = new Timer(); 
     timer.Interval = 50; 
     timer.Tick += timer_Tick; 
    } 

    protected override void OnLoad(EventArgs e) 
    { 
     // Move window out of screen 
     startPosX = Screen.PrimaryScreen.WorkingArea.Width - Width; 
     startPosY = Screen.PrimaryScreen.WorkingArea.Height; 
     SetDesktopLocation(startPosX, startPosY); 
     base.OnLoad(e); 
     // Begin animation 
     timer.Start(); 
    } 

    void timer_Tick(object sender, EventArgs e) 
    { 
     //Lift window by 5 pixels 
     startPosY -= 5; 
     //If window is fully visible stop the timer 
     if (startPosY < Screen.PrimaryScreen.WorkingArea.Height - Height) 
      timer.Stop(); 
     else 
      SetDesktopLocation(startPosX, startPosY); 
    } 
} 
+5

टी उसके कई कारकों के लिए जिम्मेदार नहीं है: * स्क्रीन के किसी किनारे से टास्कबार संलग्न किया जा सकता है; * उपयोगकर्ता के पास दाईं ओर एक द्वितीयक मॉनीटर हो सकता है (जिससे आपकी पॉपअप विंडो टास्कबार के पास कहीं भी पॉप अप नहीं हो सकती है। मुझे पता है कि यह एक पुराना धागा है, लेकिन मैं इसे किसी और के लिए देख रहा था, जैसा कि मैं था। – Geoff

+3

अतिरिक्त मेरी उपर्युक्त टिप्पणी के लिए: भले ही ऐसा लगता है कि द्वितीयक स्क्रीन होने पर कोई समस्या नहीं होनी चाहिए (स्क्रीन की वजह से। प्राथमिक स्क्रीन उपयोग), Win7 गैर-प्राथमिक स्क्रीन को टास्कबार रखने की अनुमति देता है; और बेशक, टास्कबार स्थान अभी भी हो सकता है स्क्रीन के किसी भी किनारे बनें। [इस सवाल] देखें (http://stackoverflow.com/questions/1265379/how-to-find-windows-taskbar-location-and-size) के लिए सही किनारे खोजने के उत्तर के लिए टास्कबार – Geoff

4

वहाँ Win32 में अधिसूचना गुब्बारे के लिए समर्थन (मैं एक .net प्रोग्रामर नहीं कर रहा हूँ), old new thing explains के रूप में कुछ उपयोगी गुणों के साथ है।

एक सिस्टम वाइड सेफोर भी है जिसे आपको एक बार में दिखाई देने वाले किसी भी एप्लिकेशन से एक से अधिक पॉपअप को रोकने के लिए लॉक करना चाहिए।

msdn - the toast semaphor पर टोस्ट सेमफोर पर कुछ पेज हैं और broader context of usability में हैं। सी # से गुब्बारे एपीआई का उपयोग करने के लिए मैं कुछ example code पर भी आया, लेकिन इसके लिए झुकाव नहीं कर सकता।

-1

आप फॉर्म को दाईं ओर स्क्रीन से बाहर ले जा रहे हैं, और उसके बाद इसे उठा रहे हैं। यह वास्तव में डेस्कटॉप दृश्य में कभी नहीं बढ़ेगा। एक्स-अक्ष सही और बाएं है, वाई-अक्ष ऊपर और नीचे है। एक्स-अक्ष में जोड़ने से यह और सही हो जाता है, और वाई-अक्ष में जोड़ना इसे और नीचे चला जाता है।

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