How to add toast style popup to my application?

前端 未结 4 1569
既然无缘
既然无缘 2020-12-04 18:19

I have created an application that runs in the taskbar. When a user clicks the application it pops up etc. What I would like is similar functionality to that in MSN when one

相关标签:
4条回答
  • 2020-12-04 19:00

    For Customizable and Better looking notifications..

    Check this link..

    • Windows Toast Notifications - GitHub
    0 讨论(0)
  • 2020-12-04 19:02

    There's support for notification balloons in Win32 (I'm not a .net programmer), with some useful properties as old new thing explains.

    There's also a system wide semaphor which you should lock to prevent more than one popup from any application appearing at once.

    There's a a couple of pages on the toast semaphor on msdn - the toast semaphor and in the broader context of usability. I also came across some example code to use the balloon api from C# while looking, but can't vouch for it.

    0 讨论(0)
  • 2020-12-04 19:14

    This is pretty simple. You just need to set window in off-screen area and animate it's position until it is fully visible. Here is a sample code:

    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);
        }
    }
    
    0 讨论(0)
  • 2020-12-04 19:17

    You're moving the form out of the screen to the right, and then raising it. It would never actually raise into the desktop view. X-axis is right and left, Y-axis is up and down. Adding to the X-axis makes it go further right, and adding to the Y-axis makes it go further down.

    0 讨论(0)
提交回复
热议问题