Files
2021-03-27 18:08:51 +01:00

54 lines
1.4 KiB
C#

using Microsoft.Toolkit.Mvvm.ComponentModel;
using System;
using Windows.UI.Xaml;
namespace FluentTerminal.App.ViewModels
{
public class OverlayViewModel : ObservableObject
{
private readonly DispatcherTimer _overlayTimer;
private bool _showOverlay;
private string _overlayContent;
// Important! The constructor has to be called from the UI thread.
public OverlayViewModel()
{
_overlayTimer = new DispatcherTimer {Interval = new TimeSpan(0, 0, 2)};
}
public bool ShowOverlay
{
get => _showOverlay;
set => SetProperty(ref _showOverlay, value);
}
public string OverlayContent
{
get => _overlayContent;
set => SetProperty(ref _overlayContent, value);
}
public void Show(string message)
{
OverlayContent = message;
ShowOverlay = true;
if (_overlayTimer.IsEnabled)
{
_overlayTimer.Stop();
_overlayTimer.Tick -= OnResizeOverlayTimerFinished;
}
_overlayTimer.Start();
_overlayTimer.Tick += OnResizeOverlayTimerFinished;
}
private void OnResizeOverlayTimerFinished(object sender, object e)
{
_overlayTimer.Stop();
_overlayTimer.Tick -= OnResizeOverlayTimerFinished;
ShowOverlay = false;
}
}
}