Пример #1
0
        public void Add(MyAudioSession audioSession, Point screenCorner)
        {
            this.Topmost = true;

            // Adjust current corner
            this.Left = screenCorner.X - this.ActualWidth - 10;
            this.Top  = screenCorner.Y - this.ActualHeight - 10;

            Timer timer;
            bool  hasTimer = closeTimers.TryGetValue(audioSession.GetHashCode(), out timer);

            if (hasTimer == false)
            {
                AudioSessions.Add(audioSession);

                timer           = new Timer(2000);
                timer.AutoReset = false;
                timer.Elapsed  += (s, e) => Timer_Elapsed(s, e, audioSession);

                closeTimers[audioSession.GetHashCode()] = timer;
            }

            // Reset Timer
            timer.Stop();
            timer.Start();
        }
Пример #2
0
 private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e, MyAudioSession audioSession)
 {
     ((Timer)sender).Stop();
     closeTimers.Remove(audioSession.GetHashCode());
     this.Dispatcher.Invoke(() => Remove(audioSession));
 }