diff --git a/Wino.Mail.WinUI/Controls/Calendar/CalendarPeriodControl.xaml b/Wino.Mail.WinUI/Controls/Calendar/CalendarPeriodControl.xaml index 534491d7..de381446 100644 --- a/Wino.Mail.WinUI/Controls/Calendar/CalendarPeriodControl.xaml +++ b/Wino.Mail.WinUI/Controls/Calendar/CalendarPeriodControl.xaml @@ -53,7 +53,7 @@ - + diff --git a/Wino.Mail.WinUI/Controls/Calendar/CalendarPeriodControl.xaml.cs b/Wino.Mail.WinUI/Controls/Calendar/CalendarPeriodControl.xaml.cs index 4bf6a283..e8ee39cf 100644 --- a/Wino.Mail.WinUI/Controls/Calendar/CalendarPeriodControl.xaml.cs +++ b/Wino.Mail.WinUI/Controls/Calendar/CalendarPeriodControl.xaml.cs @@ -349,12 +349,14 @@ public sealed partial class CalendarPeriodControl : UserControl, INotifyProperty TimedDayWidth))); var eventTemplate = (DataTemplate)Resources["CalendarEventTemplate"]; + ReplaceCollection(TimedAllDayItemsCollection, TimedCalendarLayoutCalculator.CalculateAllDayItems(_currentRange, CurrentItems, timedSurfaceWidth).Select(item => { PrepareDisplayMetadata(item.Item, item.Date); item.Template = eventTemplate; return item; })); + ReplaceCollection(TimedItemsCollection, _timedLayout.Items.Select(item => { PrepareDisplayMetadata(item.Item, item.Date); @@ -365,9 +367,11 @@ public sealed partial class CalendarPeriodControl : UserControl, INotifyProperty RenderTimedAllDayItems(); RenderTimedItems(); - TimedAllDayCanvas.Invalidate(); TimedHeaderCanvas.Invalidate(); TimedStructureCanvas.Invalidate(); + TimedAllDayCanvas.Invalidate(); + + TimedAllDayHost.InvalidateArrange(); } private void RefreshMonthView() @@ -977,7 +981,9 @@ public sealed partial class CalendarPeriodControl : UserControl, INotifyProperty private void ResetTimedVisualState() { ResetAnimatedElement(TimedScrollViewer); - ResetAnimatedElement(TimedAllDayHost); + + // TODO: This is buggy. + // ResetAnimatedElement(TimedAllDayHost); } private static void StartNavigationTransition(Compositor compositor, Visual visual, int direction, double width) @@ -1009,7 +1015,8 @@ public sealed partial class CalendarPeriodControl : UserControl, INotifyProperty StartTimedElementTransition(compositor, TimedScrollViewer, signedTravel, 0f, 0.68f, TimeSpan.FromMilliseconds(240), direction >= 0 ? 0f : clipInset, direction >= 0 ? clipInset : 0f, animateScale: false); if (HasTimedAllDayItems) { - StartTimedElementTransition(compositor, TimedAllDayHost, signedTravel, 0f, 0.68f, TimeSpan.FromMilliseconds(240), direction >= 0 ? 0f : clipInset, direction >= 0 ? clipInset : 0f, animateScale: false); + // TODO: This is buggy. + // StartTimedElementTransition(compositor, TimedAllDayHost, signedTravel, 0f, 0.68f, TimeSpan.FromMilliseconds(240), direction >= 0 ? 0f : clipInset, direction >= 0 ? clipInset : 0f, animateScale: false); } } @@ -1040,7 +1047,8 @@ public sealed partial class CalendarPeriodControl : UserControl, INotifyProperty StartTimedElementTransition(compositor, TimedScrollViewer, 0f, 18f, 0f, TimeSpan.FromMilliseconds(240), 0f, 0f, animateScale: false); if (HasTimedAllDayItems) { - StartTimedElementTransition(compositor, TimedAllDayHost, 0f, 18f, 0f, TimeSpan.FromMilliseconds(240), 0f, 0f, animateScale: false); + // TODO: This is buggy. + // StartTimedElementTransition(compositor, TimedAllDayHost, 0f, 18f, 0f, TimeSpan.FromMilliseconds(240), 0f, 0f, animateScale: false); } } @@ -1059,7 +1067,8 @@ public sealed partial class CalendarPeriodControl : UserControl, INotifyProperty StartOpacityTransition(compositor, ElementCompositionPreview.GetElementVisual(TimedScrollViewer), 0.8f, TimeSpan.FromMilliseconds(160)); if (HasTimedAllDayItems) { - StartOpacityTransition(compositor, ElementCompositionPreview.GetElementVisual(TimedAllDayHost), 0.8f, TimeSpan.FromMilliseconds(160)); + // TODO: This is buggy. + // StartOpacityTransition(compositor, ElementCompositionPreview.GetElementVisual(TimedAllDayHost), 0.8f, TimeSpan.FromMilliseconds(160)); } } diff --git a/Wino.Mail.WinUI/Controls/Calendar/TimedCalendarLayout.cs b/Wino.Mail.WinUI/Controls/Calendar/TimedCalendarLayout.cs index 464a7e2e..8f727cd5 100644 --- a/Wino.Mail.WinUI/Controls/Calendar/TimedCalendarLayout.cs +++ b/Wino.Mail.WinUI/Controls/Calendar/TimedCalendarLayout.cs @@ -29,7 +29,7 @@ internal sealed record TimedCalendarLayoutResult(IReadOnlyList Visible internal static class TimedCalendarLayoutCalculator { - private const double AllDayItemHeight = 28d; + private const double AllDayItemHeight = 32d; private const double AllDayItemGap = 4d; private const double AllDaySectionPadding = 6d;