From e03b659cfe2fb294c57d13bda4b83bbf07656dd3 Mon Sep 17 00:00:00 2001 From: rabbitism Date: Thu, 5 Sep 2024 22:47:49 +0800 Subject: [PATCH] feat: introducing DateTimePicker. --- demo/Ursa.Demo/Pages/DateTimePickerDemo.axaml | 12 + .../Pages/DateTimePickerDemo.axaml.cs | 13 + .../ViewModels/DateTimePickerDemoViewModel.cs | 6 + .../Ursa.Demo/ViewModels/MainViewViewModel.cs | 1 + demo/Ursa.Demo/ViewModels/MenuViewModel.cs | 2 + .../Controls/DateTimePicker.axaml | 141 +++++++++ src/Ursa.Themes.Semi/Controls/_index.axaml | 1 + .../Controls/DateTimePicker/CalendarView.cs | 16 +- .../Controls/DateTimePicker/DatePicker.cs | 11 +- .../Controls/DateTimePicker/DateTimePicker.cs | 282 ++++++++++++++++++ 10 files changed, 473 insertions(+), 12 deletions(-) create mode 100644 demo/Ursa.Demo/Pages/DateTimePickerDemo.axaml create mode 100644 demo/Ursa.Demo/Pages/DateTimePickerDemo.axaml.cs create mode 100644 demo/Ursa.Demo/ViewModels/DateTimePickerDemoViewModel.cs create mode 100644 src/Ursa.Themes.Semi/Controls/DateTimePicker.axaml create mode 100644 src/Ursa/Controls/DateTimePicker/DateTimePicker.cs diff --git a/demo/Ursa.Demo/Pages/DateTimePickerDemo.axaml b/demo/Ursa.Demo/Pages/DateTimePickerDemo.axaml new file mode 100644 index 0000000..35c8004 --- /dev/null +++ b/demo/Ursa.Demo/Pages/DateTimePickerDemo.axaml @@ -0,0 +1,12 @@ + + + + + diff --git a/demo/Ursa.Demo/Pages/DateTimePickerDemo.axaml.cs b/demo/Ursa.Demo/Pages/DateTimePickerDemo.axaml.cs new file mode 100644 index 0000000..2740132 --- /dev/null +++ b/demo/Ursa.Demo/Pages/DateTimePickerDemo.axaml.cs @@ -0,0 +1,13 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace Ursa.Demo.Pages; + +public partial class DateTimePickerDemo : UserControl +{ + public DateTimePickerDemo() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/demo/Ursa.Demo/ViewModels/DateTimePickerDemoViewModel.cs b/demo/Ursa.Demo/ViewModels/DateTimePickerDemoViewModel.cs new file mode 100644 index 0000000..637f9ae --- /dev/null +++ b/demo/Ursa.Demo/ViewModels/DateTimePickerDemoViewModel.cs @@ -0,0 +1,6 @@ +namespace Ursa.Demo.ViewModels; + +public class DateTimePickerDemoViewModel +{ + +} \ No newline at end of file diff --git a/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs b/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs index 87a92ac..d4af1cb 100644 --- a/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs +++ b/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs @@ -36,6 +36,7 @@ public class MainViewViewModel : ViewModelBase MenuKeys.MenuKeyClassInput => new ClassInputDemoViewModel(), MenuKeys.MenuKeyClock => new ClockDemoViewModel(), MenuKeys.MenuKeyDatePicker => new DatePickerDemoViewModel(), + MenuKeys.MenuKeyDateTimePicker => new DateTimePickerDemoViewModel(), MenuKeys.MenuKeyDialog => new DialogDemoViewModel(), MenuKeys.MenuKeyDivider => new DividerDemoViewModel(), MenuKeys.MenuKeyDisableContainer => new DisableContainerDemoViewModel(), diff --git a/demo/Ursa.Demo/ViewModels/MenuViewModel.cs b/demo/Ursa.Demo/ViewModels/MenuViewModel.cs index bf9bb6e..742989c 100644 --- a/demo/Ursa.Demo/ViewModels/MenuViewModel.cs +++ b/demo/Ursa.Demo/ViewModels/MenuViewModel.cs @@ -21,6 +21,7 @@ public class MenuViewModel: ViewModelBase new() { MenuHeader = "Class Input", Key = MenuKeys.MenuKeyClassInput }, new() { MenuHeader = "Clock", Key = MenuKeys.MenuKeyClock, Status = "Updated" }, new() { MenuHeader = "Date Picker", Key = MenuKeys.MenuKeyDatePicker, Status = "New"}, + new() { MenuHeader = "Date Time Picker", Key = MenuKeys.MenuKeyDateTimePicker, Status = "New"}, new() { MenuHeader = "Dialog", Key = MenuKeys.MenuKeyDialog }, new() { MenuHeader = "Disable Container", Key = MenuKeys.MenuKeyDisableContainer }, new() { MenuHeader = "Divider", Key = MenuKeys.MenuKeyDivider }, @@ -71,6 +72,7 @@ public static class MenuKeys public const string MenuKeyClassInput = "Class Input"; public const string MenuKeyClock = "Clock"; public const string MenuKeyDatePicker = "DatePicker"; + public const string MenuKeyDateTimePicker = "DateTimePicker"; public const string MenuKeyDialog = "Dialog"; public const string MenuKeyDivider = "Divider"; public const string MenuKeyDisableContainer = "DisableContainer"; diff --git a/src/Ursa.Themes.Semi/Controls/DateTimePicker.axaml b/src/Ursa.Themes.Semi/Controls/DateTimePicker.axaml new file mode 100644 index 0000000..ad0d82f --- /dev/null +++ b/src/Ursa.Themes.Semi/Controls/DateTimePicker.axaml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + +