public async Task DeleteImage() { var dialog = new MessageBoxStandardParams { ContentTitle = "Confirm Deletion", ContentMessage = $"Please confirm deletion of {Name} {ShortID}", ButtonDefinitions = ButtonEnum.OkCancel, Icon = Icon.Warning }; var result = await ConfirmDeleteImage.Handle(dialog); if (result != ButtonResult.Ok) { return; } try { await _docker.Client.Images.DeleteImageAsync( ID, new ImageDeleteParameters() ); } catch (Exception e) { Console.WriteLine(e.Message); } }
/// <summary> /// Gets the prompt window. /// </summary> /// <param name="title">The title.</param> /// <param name="header">The header.</param> /// <param name="message">The message.</param> /// <param name="icon">The icon.</param> /// <param name="promptType">Type of the prompt.</param> /// <returns>IMsBoxWindow<ButtonResult>.</returns> public static IMsBoxWindow <ButtonResult> GetPromptWindow(string title, string header, string message, Icon icon, PromptType promptType) { var buttonEnum = promptType switch { PromptType.ConfirmCancel => ButtonEnum.OkCancel, PromptType.OK => ButtonEnum.Ok, _ => ButtonEnum.YesNo, }; var font = ResolveFont(); var parameters = new MessageBoxStandardParams() { CanResize = false, ShowInCenter = true, ContentTitle = title, ContentHeader = header, ContentMessage = message, Icon = icon, ButtonDefinitions = buttonEnum, WindowStartupLocation = WindowStartupLocation.CenterOwner, FontFamily = font.GetFontFamily(), WindowIcon = StaticResources.GetAppIcon() }; var window = new Controls.Themes.StandardMessageBox(buttonEnum); window.DataContext = new MsBoxStandardViewModel(parameters, window); return(new StandardMessageBox(window)); }
public static IMsBoxWindow <ButtonResult> GetMessageBoxStandardWindow(MessageBoxStandardParams @params) { var window = new StandardWindow(@params.Style); window.DataContext = new MsBoxStandardViewModel(@params, window); return(new MsBoxWindowBase <StandardWindow, ButtonResult>(window)); }
public MsBoxStandardViewModel(MessageBoxStandardParams @params, MsBoxStandardWindow msBoxStandardWindow) : base(@params, @params.Icon) { _window = msBoxStandardWindow; SetButtons(@params.ButtonDefinitions); ButtonClickCommand = new RelayCommand(o => ButtonClick(o.ToString())); EnterClickCommand = new RelayCommand(o => EnterClick()); EscClickCommand = new RelayCommand(o => EscClick()); }
public MsBoxStandardViewModel(MessageBoxStandardParams @params, MsBoxStandardWindow msBoxStandardWindow) : base(@params) { ContentMessage = @params.ContentMessage; _window = msBoxStandardWindow; SetButtons(@params.ButtonDefinitions); ButtonClickCommand = ReactiveCommand.Create <string>(ButtonClick); EnterClickCommand = ReactiveCommand.Create(EnterClick); EscClickCommand = ReactiveCommand.Create(EscClick); }
public void ShowMessage(string title, string message, Window?owner = null) { Avalonia.Threading.Dispatcher.UIThread.InvokeAsync(() => { // TODO replace this with a custom message box, this one doesn't work well MessageBoxStandardParams p = new MessageBoxStandardParams() { ContentTitle = title, ContentMessage = message, WindowStartupLocation = WindowStartupLocation.CenterOwner, ButtonDefinitions = ButtonEnum.Ok, Style = Style.Windows }; MessageBox.Avalonia.MessageBoxManager.GetMessageBoxStandardWindow(p).ShowDialog(owner ?? this); }); }
/// <summary> /// Gets the confirm cancel window. /// </summary> /// <param name="title">The title.</param> /// <param name="header">The header.</param> /// <param name="message">The message.</param> /// <param name="icon">The icon.</param> /// <returns>MsgBox.BaseWindows.IMsBoxWindow<MsgBox.Enums.ButtonResult>.</returns> public static MsgBox.BaseWindows.IMsBoxWindow <MsgBox.Enums.ButtonResult> GetConfirmCancelWindow(string title, string header, string message, MsgBox.Enums.Icon icon) { var parameters = new MessageBoxStandardParams() { CanResize = false, ShowInCenter = true, ContentTitle = title, ContentHeader = header, ContentMessage = message, Icon = icon, ButtonDefinitions = MsgBox.Enums.ButtonEnum.OkCancel, WindowStartupLocation = WindowStartupLocation.CenterOwner }; var font = ResolveFont(); var window = new Controls.Themes.StandardMessageBox(parameters.Style); parameters.Window = window; window.Icon = StaticResources.GetAppIcon(); window.FontFamily = font.GetFontFamily(); window.DataContext = new MsgBox.ViewModels.MsBoxStandardViewModel(parameters); return(new StandardMessageBox(window)); }
private async void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) { e.Cancel = _dataContext().Saved == "*"; if (_dataContext().Saved == "*") { var msgBoxParams = new MessageBoxStandardParams { ContentTitle = "Save", ContentMessage = "You still have unsaved changes. Are you sure you want to exit?", ButtonDefinitions = MessageBox.Avalonia.Enums.ButtonEnum.YesNo, WindowStartupLocation = WindowStartupLocation.CenterOwner }; var window = MessageBox.Avalonia.MessageBoxManager .GetMessageBoxStandardWindow(msgBoxParams) ; var task = await window.ShowDialog(this); if (task == ButtonResult.Yes) { _dataContext().Saved = ""; this.Close(); } } }
// public ReactiveCommand<string, Unit> ButtonClickCommand { get; private set; } public MsBoxStandardViewModel(MessageBoxStandardParams @params) : base(@params) { _window = @params.Window; SetButtons(@params.ButtonDefinitions); }