using System; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; namespace InstaSoftOfficeTool.Pages { public partial class ConfirmDialog : UserControl { private TaskCompletionSource _tcs; public ConfirmDialog() { InitializeComponent(); } public Task ShowAsync(string title, string message, string confirmText = "Igen", string cancelText = "M\u00e9gse", DialogType type = DialogType.Warning) { DialogTitle.Text = title; DialogMessage.Text = message; BtnConfirm.Content = confirmText; BtnCancel.Content = cancelText; switch (type) { case DialogType.Warning: DialogIcon.Text = "\uE7BA"; DialogIcon.Foreground = (Brush)FindResource("WarningBrush"); break; case DialogType.Question: DialogIcon.Text = "\uE9CE"; DialogIcon.Foreground = (Brush)FindResource("AccentBrush"); break; case DialogType.Error: DialogIcon.Text = "\uE711"; DialogIcon.Foreground = (Brush)FindResource("ErrorBrush"); break; } Visibility = Visibility.Visible; _tcs = new TaskCompletionSource(); return _tcs.Task; } private void BtnConfirm_Click(object sender, RoutedEventArgs e) { Visibility = Visibility.Collapsed; _tcs?.TrySetResult(true); } private void BtnCancel_Click(object sender, RoutedEventArgs e) { Visibility = Visibility.Collapsed; _tcs?.TrySetResult(false); } private void Backdrop_MouseDown(object sender, MouseButtonEventArgs e) { // click outside = cancel Visibility = Visibility.Collapsed; _tcs?.TrySetResult(false); } } public enum DialogType { Warning, Question, Error } }