Exemplo n.º 1
0
        public async Task HandleToast(int fadeOutDelay = 0)
        {
            fadeOutDelay         = fadeOutDelay > 0 ? fadeOutDelay : Config.Instance.NotificationFadeOutDelay;
            _window.Visibility   = Visibility.Visible;
            _window.SizeChanged += (sender, args) =>
            {
                _window.Left -= args.NewSize.Width - args.PreviousSize.Width;
                _window.Top  -= args.NewSize.Height - args.PreviousSize.Height;
                ToastManager.UpdateToasts();
            };
            while (DateTime.UtcNow - _startUpTime < TimeSpan.FromSeconds(fadeOutDelay + FadeInDuration))
            {
                if (_forceClose)
                {
                    break;
                }
                await Task.Delay(100);

                if (!_window.IsMouseOver)
                {
                    continue;
                }
                _startUpTime = DateTime.UtcNow - TimeSpan.FromSeconds(FadeOutSpeedup);
            }
            await _window.FadeOut();
        }
Exemplo n.º 2
0
 public ToastWindow(UserControl control)
 {
     InitializeComponent();
     ContentControl.Content = control;
     _forceClose            = () => ToastManager.ForceCloseToast(control);
 }