private void TryNextDisplayNotication() { if (NoticationRequestQueue.TryDequeue(out var payload)) { _CurrentNotication = payload; LiteNotification.DataContext = payload; LiteNotification.ShowDismissButton = payload.IsShowDismissButton; LiteNotification.Show((int)(payload.ShowDuration?.TotalMilliseconds ?? 0)); } }
private void PushNextNotication(Models.InAppNotificationPayload payload) { NoticationRequestQueue.Enqueue(payload); // 前に表示した通知が時間設定されていない場合には強制非表示 if (_CurrentNotication != null && _CurrentNotication.ShowDuration == null) { LiteNotification.Dismiss(); } else { TryNextDisplayNotication(); } }
private void LiteNotification_Dismissed(object sender, EventArgs e) { _CurrentNotication = null; (sender as Microsoft.Toolkit.Uwp.UI.Controls.InAppNotification).DataContext = null; TryNextDisplayNotication(); }
private void OnNotificationRequested(Models.InAppNotificationPayload payload) { PushNextNotication(payload); }