DispatcherTimer timer_toast = new DispatcherTimer();
public static class Events {
public delegate void ToastEventHandler(string msg, int time);
public static ToastEventHandler OnToast;
public static ToastEventHandler OnToastMask;
}
public MainWindow() {
InitializeComponent();
timer_toast.Interval = TimeSpan.FromMilliseconds(3000);
timer_toast.Tick += (sender1, e1) => {
ui_toast.Dispatcher?.Invoke(() => { ui_toast.Visibility = Visibility.Hidden; });
timer_toast.Stop();
};
Events.OnToast += (msg, time) => {
timer_toast.Stop();
if (msg.IsEmpty()) {
ui_toast.Dispatcher?.Invoke(() => {
ui_toast_text.Text = string.Empty;
ui_toast_mask.Visibility = Visibility.Hidden;
ui_toast.Visibility = Visibility.Hidden;
ui_toast_text.TextAlignment = TextAlignment.Center;
});
time = 1;
} else {
ui_toast.Dispatcher?.Invoke(() => {
ui_toast_mask.Visibility = Visibility.Hidden;
ui_toast.Visibility = Visibility.Visible;
ui_toast_text.Text = msg;
ui_toast_text.TextAlignment = TextAlignment.Center;
});
}
timer_toast.Interval = TimeSpan.FromMilliseconds(time);
timer_toast.Start();
};
Events.OnToastMask += (msg, time) => {
timer_toast.Stop();
ui_toast.Dispatcher?.Invoke(() => {
ui_toast.Visibility = Visibility.Visible;
ui_toast_mask.Visibility = Visibility.Visible;
ui_toast_text.Text = msg;
ui_toast_text.TextAlignment = TextAlignment.Center;
});
timer_toast.Interval = TimeSpan.FromMilliseconds(time);
timer_toast.Start();
};
}