From 5eeebb020f17c0016aee1922e780bf033f39dc07 Mon Sep 17 00:00:00 2001 From: rabbitism Date: Thu, 11 Jan 2024 21:03:37 +0800 Subject: [PATCH] feat: implement buttons in different conditions. --- demo/Ursa.Demo/Pages/MessageBoxDemo.axaml | 4 ++ .../ViewModels/MessageBoxDemoViewModel.cs | 28 +++++++++ .../Controls/MessageBoxWindow.axaml | 59 +++++++++++++++---- src/Ursa/Controls/MessageBox/MessageBox.cs | 28 +++++++++ .../Controls/MessageBox/MessageBoxWindow.cs | 55 ++++++++++++++--- 5 files changed, 156 insertions(+), 18 deletions(-) diff --git a/demo/Ursa.Demo/Pages/MessageBoxDemo.axaml b/demo/Ursa.Demo/Pages/MessageBoxDemo.axaml index e9f6213..a2ed0b1 100644 --- a/demo/Ursa.Demo/Pages/MessageBoxDemo.axaml +++ b/demo/Ursa.Demo/Pages/MessageBoxDemo.axaml @@ -9,5 +9,9 @@ x:Class="Ursa.Demo.Pages.MessageBoxDemo"> + + + + diff --git a/demo/Ursa.Demo/ViewModels/MessageBoxDemoViewModel.cs b/demo/Ursa.Demo/ViewModels/MessageBoxDemoViewModel.cs index 3d95040..4afcb64 100644 --- a/demo/Ursa.Demo/ViewModels/MessageBoxDemoViewModel.cs +++ b/demo/Ursa.Demo/ViewModels/MessageBoxDemoViewModel.cs @@ -9,14 +9,42 @@ namespace Ursa.Demo.ViewModels; public class MessageBoxDemoViewModel: ObservableObject { public ICommand DefaultMessageBoxCommand { get; set; } + public ICommand OkCommand { get; set; } + public ICommand YesNoCommand { get; set; } + public ICommand YesNoCancelCommand { get; set; } + public ICommand OkCancelCommand { get; set; } public MessageBoxDemoViewModel() { DefaultMessageBoxCommand = new AsyncRelayCommand(OnDefaultMessageAsync); + OkCommand = new AsyncRelayCommand(OnOkAsync); + YesNoCommand = new AsyncRelayCommand(OnYesNoAsync); + YesNoCancelCommand = new AsyncRelayCommand(OnYesNoCancelAsync); + OkCancelCommand = new AsyncRelayCommand(OnOkCancelAsync); } private async Task OnDefaultMessageAsync() { var result = await MessageBox.ShowAsync("Hello Message Box"); } + + private async Task OnOkAsync() + { + var result = await MessageBox.ShowAsync("Hello Message Box", "Hello", MessageBoxButton.OK); + } + + private async Task OnYesNoAsync() + { + var result = await MessageBox.ShowAsync("Hello Message Box", "Hello", MessageBoxButton.YesNo); + } + + private async Task OnYesNoCancelAsync() + { + var result = await MessageBox.ShowAsync("Hello Message Box", "Hello", MessageBoxButton.YesNoCancel); + } + + private async Task OnOkCancelAsync() + { + var result = await MessageBox.ShowAsync("Hello Message Box", "Hello", MessageBoxButton.OKCancel); + } } \ No newline at end of file diff --git a/src/Ursa.Themes.Semi/Controls/MessageBoxWindow.axaml b/src/Ursa.Themes.Semi/Controls/MessageBoxWindow.axaml index a2c496f..b10410b 100644 --- a/src/Ursa.Themes.Semi/Controls/MessageBoxWindow.axaml +++ b/src/Ursa.Themes.Semi/Controls/MessageBoxWindow.axaml @@ -4,7 +4,7 @@ xmlns:u="https://irihi.tech/ursa"> - + @@ -24,13 +24,30 @@ - - + + + - -