diff --git a/src/Ursa.Themes.Semi/Controls/DateRangePicker.axaml b/src/Ursa.Themes.Semi/Controls/DateRangePicker.axaml
index 0cc449b..1e81688 100644
--- a/src/Ursa.Themes.Semi/Controls/DateRangePicker.axaml
+++ b/src/Ursa.Themes.Semi/Controls/DateRangePicker.axaml
@@ -66,7 +66,7 @@
Name="{x:Static u:DateRangePicker.PART_Button}"
Grid.Column="3"
Padding="8,0"
- Content="{DynamicResource TimePickerIconGlyph}"
+ Content="{DynamicResource CalendarDatePickerIconGlyph}"
Focusable="False"
Theme="{DynamicResource InnerIconButton}" />
@@ -87,24 +87,49 @@
BoxShadow="{DynamicResource ComboBoxPopupBoxShadow}"
ClipToBounds="True"
CornerRadius="6">
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/Ursa/Controls/DateTimePicker/CalendarContext.cs b/src/Ursa/Controls/DateTimePicker/CalendarContext.cs
index 19ff533..90beeab 100644
--- a/src/Ursa/Controls/DateTimePicker/CalendarContext.cs
+++ b/src/Ursa/Controls/DateTimePicker/CalendarContext.cs
@@ -13,4 +13,9 @@ public class CalendarContext(int? year = null, int? month = null, int? day = nul
{
return new CalendarContext(Year, Month, Day) { StartYear = StartYear, EndYear = EndYear };
}
+
+ public static CalendarContext Today()
+ {
+ return new CalendarContext(DateTime.Today.Year, DateTime.Today.Month, 1);
+ }
}
\ No newline at end of file
diff --git a/src/Ursa/Controls/DateTimePicker/DateRangePicker.cs b/src/Ursa/Controls/DateTimePicker/DateRangePicker.cs
index c4556a8..149a57b 100644
--- a/src/Ursa/Controls/DateTimePicker/DateRangePicker.cs
+++ b/src/Ursa/Controls/DateTimePicker/DateRangePicker.cs
@@ -217,26 +217,37 @@ public class DateRangePicker : DatePickerBase
if (_endCalendar is not null)
{
- var date2 = SelectedEndDate ?? SelectedStartDate ?? DateTime.Today;
- _endCalendar.ContextCalendar = new CalendarContext(date2.Year, date2.Month, 1);
+ var date2 = SelectedEndDate;
+ if (date2 is null || (date2.Value.Year==SelectedStartDate?.Year && date2.Value.Month == SelectedStartDate?.Month))
+ {
+ date2 = SelectedStartDate ?? DateTime.Today;
+ date2 = date2.Value.AddMonths(1);
+ }
+ _endCalendar.ContextCalendar = new CalendarContext(date2?.Year, date2?.Month, 1);
_endCalendar.UpdateDayButtons();
}
}
else if (sender == _endTextBox)
{
_start = false;
- if (_startCalendar is not null)
- {
- var date2 = SelectedStartDate ?? SelectedEndDate ?? DateTime.Today;
- _startCalendar.ContextCalendar = new CalendarContext(date2.Year, date2.Month, 1);
- _startCalendar.UpdateDayButtons();
- }
if (_endCalendar is not null)
{
var date = SelectedEndDate ?? DateTime.Today;
_endCalendar.ContextCalendar = new CalendarContext(date.Year, date.Month, 1);
_endCalendar.UpdateDayButtons();
}
+ if (_startCalendar is not null)
+ {
+ var date2 = SelectedStartDate;
+ if (date2 is null || (date2.Value.Year==SelectedEndDate?.Year && date2.Value.Month == SelectedEndDate?.Month))
+ {
+ date2 = SelectedStartDate ?? DateTime.Today;
+ date2 = date2.Value.AddMonths(-1);
+ }
+ _startCalendar.ContextCalendar = new CalendarContext(date2?.Year, date2?.Month, 1);
+ _startCalendar.UpdateDayButtons();
+ }
+
}
SetCurrentValue(IsDropdownOpenProperty, true);
}