diff --git a/demo/Ursa.Demo/Pages/TimePickerDemo.axaml b/demo/Ursa.Demo/Pages/TimePickerDemo.axaml index 1ead8bf..219e8e1 100644 --- a/demo/Ursa.Demo/Pages/TimePickerDemo.axaml +++ b/demo/Ursa.Demo/Pages/TimePickerDemo.axaml @@ -21,8 +21,9 @@ Width="300" Classes="ClearButton" DisplayFormat="HH 时 mm 分 ss 秒" - PanelFormat="HH mm ss tt" + PanelFormat="tt HH mm ss" HorizontalAlignment="Left" + NeedConfirmation="True" InnerLeftContent="时刻" InnerRightContent="截止" /> diff --git a/src/Ursa.Themes.Semi/Controls/TimePicker.axaml b/src/Ursa.Themes.Semi/Controls/TimePicker.axaml index 3bef671..779d93f 100644 --- a/src/Ursa.Themes.Semi/Controls/TimePicker.axaml +++ b/src/Ursa.Themes.Semi/Controls/TimePicker.axaml @@ -199,7 +199,7 @@ Margin="8" HorizontalAlignment="Right" Command="{Binding $parent[u:TimePicker].Confirm}" - Content="Confirm" /> + Content="{DynamicResource STRING_DATE_TIME_CONFIRM}" /> Dark Light System + Confirm diff --git a/src/Ursa.Themes.Semi/Locale/zh-cn.axaml b/src/Ursa.Themes.Semi/Locale/zh-cn.axaml index 2ffda25..d4a0054 100644 --- a/src/Ursa.Themes.Semi/Locale/zh-cn.axaml +++ b/src/Ursa.Themes.Semi/Locale/zh-cn.axaml @@ -15,4 +15,5 @@ 暗色 亮色 跟随系统 + 确认 diff --git a/src/Ursa/Controls/DateTimePicker/TimePickerPresenter.cs b/src/Ursa/Controls/DateTimePicker/TimePickerPresenter.cs index 1abfaae..e4cb58e 100644 --- a/src/Ursa/Controls/DateTimePicker/TimePickerPresenter.cs +++ b/src/Ursa/Controls/DateTimePicker/TimePickerPresenter.cs @@ -220,6 +220,7 @@ public class TimePickerPresenter : TemplatedControl private void OnPanelSelectionChanged(object sender, System.EventArgs e) { if (_updateFromTimeChange) return; + if (!_use12Clock && sender == _ampmSelector) return; var time = NeedsConfirmation ? _timeHolder : Time ?? DateTime.Now.TimeOfDay; var hour = _hourSelector?.SelectedValue ?? time.Hours; var minute = _minuteSelector?.SelectedValue ?? time.Minutes; @@ -232,6 +233,15 @@ public class TimePickerPresenter : TemplatedControl 1 when hour < 12 => hour + 12, _ => hour }; + else + { + ampm = hour switch + { + >= 12 => 1, + _ => 0 + }; + _ampmSelector.SelectedValue = ampm; + } var newTime = new TimeSpan(hour, minute, second); if (NeedsConfirmation) _timeHolder = newTime;