Пример #1
0
        private void EnqueueNewToast(MiniToast mt)
        {
            ToastAddEventAgs e = new ToastAddEventAgs();

            if (this.NewToastAdd != null)
            {
                this.NewToastAdd(this, e);
                Task.WaitAll(e.tasks.ToArray());
            }
            this.NewToastAdd += new NewToastAddEventHandler(mt.ShiftTop);
            var t = new Thread(() =>
            {
                System.Windows.Forms.Application.Run(mt);
            });

            t.SetApartmentState(ApartmentState.STA);
            t.IsBackground = true;
            t.Start();
        }
Пример #2
0
        public void ShiftTop(object sender, ToastAddEventAgs e)
        {
            var t = new Task(() =>
            {
                int y = this.Location.Y;
                for (int i = 1; i <= this.Height + 10; i += 5)
                {
                    try
                    {
                        if (this.IsDisposed)
                        {
                            break;
                        }
                        this.Top = y - i;
                    }
                    catch (Exception) { break; }
                    Thread.Sleep(20);
                }
            });

            e.tasks.Add(t);
            t.Start();
        }