From d371663124c7db4a41aa4737faff9d9c6317cdd6 Mon Sep 17 00:00:00 2001 From: polarboy Date: Tue, 10 Sep 2024 17:50:37 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=20RangeCalendar=20=E5=88=B0?= =?UTF-8?q?=20DatePicker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ShowCase/DatePickerShowCase.cs.axaml | 9 +- .../DatePicker/DatePickerToken.cs | 127 +++++++++++++++++- .../RangeCalendar/RangeCalendar.cs | 22 ++- .../RangeCalendarBlackoutDatesCollection.cs | 0 .../RangeCalendar/RangeCalendarButton.cs | 0 .../RangeCalendar/RangeCalendarDayButton.cs | 0 .../RangeCalendar/RangeCalendarItem.cs | 1 + .../RangeCalendar/RangeCalendarItemTheme.cs | 8 +- .../RangeCalendar/RangeCalendarTheme.cs | 9 +- .../ControlThemeRegister.g.cs | 4 +- .../ControlTokenRegister.g.cs | 1 + .../TokenResourceConst.g.cs | 21 +++ .../TimePicker/DateTimePickerPanel.cs | 2 +- .../TimePicker/TimePickerPresenter.cs | 2 +- 14 files changed, 186 insertions(+), 20 deletions(-) rename src/AtomUI.Controls/{Calendar => DatePicker}/RangeCalendar/RangeCalendar.cs (99%) rename src/AtomUI.Controls/{Calendar => DatePicker}/RangeCalendar/RangeCalendarBlackoutDatesCollection.cs (100%) rename src/AtomUI.Controls/{Calendar => DatePicker}/RangeCalendar/RangeCalendarButton.cs (100%) rename src/AtomUI.Controls/{Calendar => DatePicker}/RangeCalendar/RangeCalendarDayButton.cs (100%) rename src/AtomUI.Controls/{Calendar => DatePicker}/RangeCalendar/RangeCalendarItem.cs (99%) rename src/AtomUI.Controls/{Calendar => DatePicker}/RangeCalendar/RangeCalendarItemTheme.cs (97%) rename src/AtomUI.Controls/{Calendar => DatePicker}/RangeCalendar/RangeCalendarTheme.cs (85%) diff --git a/samples/AtomUI.Demo.Desktop/ShowCase/DatePickerShowCase.cs.axaml b/samples/AtomUI.Demo.Desktop/ShowCase/DatePickerShowCase.cs.axaml index 04a87ee3b..eefc5e3a5 100644 --- a/samples/AtomUI.Demo.Desktop/ShowCase/DatePickerShowCase.cs.axaml +++ b/samples/AtomUI.Demo.Desktop/ShowCase/DatePickerShowCase.cs.axaml @@ -5,7 +5,12 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:desktop="clr-namespace:AtomUI.Demo.Desktop" - + xmlns:atom="https://atomui.net" mc:Ignorable="d"> - + + + + \ No newline at end of file diff --git a/src/AtomUI.Controls/DatePicker/DatePickerToken.cs b/src/AtomUI.Controls/DatePicker/DatePickerToken.cs index e1d32de28..410dcb91d 100644 --- a/src/AtomUI.Controls/DatePicker/DatePickerToken.cs +++ b/src/AtomUI.Controls/DatePicker/DatePickerToken.cs @@ -1,5 +1,128 @@ -namespace AtomUI.Controls; +using AtomUI.Media; +using AtomUI.Theme.TokenSystem; +using Avalonia; +using Avalonia.Controls; +using Avalonia.Media; -public class DatePickerToken +namespace AtomUI.Controls; + +[ControlDesignToken] +internal class DatePickerToken : AbstractControlDesignToken { + public const string ID = "DatePicker"; + + public DatePickerToken() + : base(ID) + { + } + + /// + /// 单元格悬浮态背景色 + /// + public Color CellHoverBg { get; set; } + + /// + /// 选取范围内的单元格背景色 + /// + public Color CellActiveWithRangeBg { get; set; } + + /// + /// 选取范围内的单元格悬浮态背景色 + /// + public Color CellHoverWithRangeBg { get; set; } + + /// + /// 单元格禁用态背景色 + /// + public Color CellBgDisabled { get; set; } + + /// + /// 选取范围时单元格边框色 + /// + public Color CellRangeBorderColor { get; set; } + + /// + /// 单元格高度 + /// + public double CellHeight { get; set; } + + /// + /// 单元格宽度 + /// + public double CellWidth { get; set; } + + /// + /// 单元格行高 + /// + public double CellLineHeight { get; set; } + + /// + /// 单元格外边距 + /// + public Thickness CellMargin { get; set; } + + /// + /// 日历项最小宽度 + /// + public double ItemPanelMinWidth { get; set; } + + /// + /// 日历项最小高度 + /// + public double ItemPanelMinHeight { get; set; } + + /// + /// 单元格文本高度 + /// + public double TextHeight { get; set; } + + /// + /// 面板内容内边距 + /// + public Thickness PanelContentPadding { get; set; } + + /// + /// 十年/年/季/月/周单元格高度 + /// + public double WithoutTimeCellHeight { get; set; } + + /// + /// 星期的高度 + /// + public GridLength DayTitleHeight { get; set; } + + /// + /// Header 头外边距 + /// + public Thickness HeaderMargin { get; set; } + + /// + /// 范围日历间距 + /// + public double RangeCalendarSpacing { get; set; } + + internal override void CalculateFromAlias() + { + base.CalculateFromAlias(); + + var colorPrimary = _globalToken.ColorToken.ColorPrimaryToken.ColorPrimary; + + CellHoverBg = _globalToken.ControlItemBgHover; + CellActiveWithRangeBg = _globalToken.ControlItemBgActive; + CellHoverWithRangeBg = colorPrimary.Lighten(35); + CellRangeBorderColor = colorPrimary.Lighten(20); + CellBgDisabled = _globalToken.ColorBgContainerDisabled; + CellWidth = _globalToken.HeightToken.ControlHeightSM; + CellHeight = _globalToken.HeightToken.ControlHeightSM; + TextHeight = _globalToken.HeightToken.ControlHeightLG; + WithoutTimeCellHeight = _globalToken.HeightToken.ControlHeightLG * 1.65; + CellMargin = new Thickness(_globalToken.MarginXXS); + PanelContentPadding = new Thickness(_globalToken.PaddingSM); + ItemPanelMinWidth = 260; + ItemPanelMinHeight = 290; + DayTitleHeight = new GridLength(40, GridUnitType.Pixel); + HeaderMargin = new Thickness(0, 0, 0, _globalToken.MarginXS); + CellLineHeight = CellHeight - 2; // 不知道为啥设置成一样,或者不设置文字有些靠下 + RangeCalendarSpacing = 20; + } } \ No newline at end of file diff --git a/src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendar.cs b/src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendar.cs similarity index 99% rename from src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendar.cs rename to src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendar.cs index 5a762c16c..7a885b53a 100644 --- a/src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendar.cs +++ b/src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendar.cs @@ -24,6 +24,15 @@ public class RangeDateSelectedEventArgs : RoutedEventArgs } } +public class HoverDateSelectedEventArgs : RoutedEventArgs +{ + public DateTime? HoverDate { get; } + public HoverDateSelectedEventArgs(DateTime? date) + { + HoverDate = date; + } +} + [TemplatePart(RangeCalendarTheme.CalendarItemPart, typeof(RangeCalendarItem))] [TemplatePart(RangeCalendarTheme.RootPart, typeof(Panel))] public class RangeCalendar : TemplatedControl @@ -308,9 +317,6 @@ public class RangeCalendar : TemplatedControl #endregion private bool _displayDateIsChanging; - - private bool _isShiftPressed; - private DateTime _selectedMonth; private DateTime _selectedYear; @@ -498,6 +504,11 @@ public class RangeCalendar : TemplatedControl } } + internal void NotifyHoverDateChanged(DateTime? hoverDate) + { + HoverDateChanged?.Invoke(this, new HoverDateSelectedEventArgs(hoverDate)); + } + /// /// Inherited code: Requires comment. /// @@ -1192,6 +1203,11 @@ public class RangeCalendar : TemplatedControl /// 当范围选择完成的时候派发这个事件 /// public event EventHandler? RangeDateSelected; + + /// + /// 当前 Pointer 选中的日期事件 + /// + public event EventHandler? HoverDateChanged; protected override void OnPointerReleased(PointerReleasedEventArgs e) { diff --git a/src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarBlackoutDatesCollection.cs b/src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarBlackoutDatesCollection.cs similarity index 100% rename from src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarBlackoutDatesCollection.cs rename to src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarBlackoutDatesCollection.cs diff --git a/src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarButton.cs b/src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarButton.cs similarity index 100% rename from src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarButton.cs rename to src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarButton.cs diff --git a/src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarDayButton.cs b/src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarDayButton.cs similarity index 100% rename from src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarDayButton.cs rename to src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarDayButton.cs diff --git a/src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarItem.cs b/src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarItem.cs similarity index 99% rename from src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarItem.cs rename to src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarItem.cs index fd402ea7d..e3ede0ced 100644 --- a/src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarItem.cs +++ b/src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarItem.cs @@ -1193,6 +1193,7 @@ internal class RangeCalendarItem : TemplatedControl Owner.HoverDateTime = selectedDate; // Update the States of the buttons Owner.UpdateHighlightDays(); + Owner.NotifyHoverDateChanged(selectedDate); } } } diff --git a/src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarItemTheme.cs b/src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarItemTheme.cs similarity index 97% rename from src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarItemTheme.cs rename to src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarItemTheme.cs index 326fa06d4..5130737fe 100644 --- a/src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarItemTheme.cs +++ b/src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarItemTheme.cs @@ -154,7 +154,7 @@ internal class RangeCalendarItemTheme : BaseControlTheme CreateTemplateParentBinding(headerLayout, Visual.IsVisibleProperty, RangeCalendarItem.IsMonthViewModeProperty); TokenResourceBinder.CreateTokenBinding(headerLayout, Layoutable.MarginProperty, - CalendarTokenResourceKey.RangeCalendarSpacing, BindingPriority.Template, + DatePickerTokenResourceKey.RangeCalendarSpacing, BindingPriority.Template, v => { if (v is double dval) @@ -322,7 +322,7 @@ internal class RangeCalendarItemTheme : BaseControlTheme monthView.Children.Add(secondaryMonthView); TokenResourceBinder.CreateTokenBinding(secondaryMonthView, Layoutable.MarginProperty, - CalendarTokenResourceKey.RangeCalendarSpacing, BindingPriority.Template, + DatePickerTokenResourceKey.RangeCalendarSpacing, BindingPriority.Template, v => { if (v is double dval) @@ -365,7 +365,7 @@ internal class RangeCalendarItemTheme : BaseControlTheme { var dayTitleRowDef = new RowDefinition(); TokenResourceBinder.CreateTokenBinding(dayTitleRowDef, RowDefinition.HeightProperty, - CalendarTokenResourceKey.DayTitleHeight); + DatePickerTokenResourceKey.DayTitleHeight); var monthView = new Grid { Name = name, @@ -400,7 +400,7 @@ internal class RangeCalendarItemTheme : BaseControlTheme var commonStyle = new Style(selector => selector.Nesting()); var headerLayoutStyle = new Style(selector => selector.Nesting().Template().Name(HeaderLayoutPart)); - headerLayoutStyle.Add(Layoutable.MarginProperty, CalendarTokenResourceKey.HeaderMargin); + headerLayoutStyle.Add(Layoutable.MarginProperty, DatePickerTokenResourceKey.HeaderMargin); commonStyle.Add(headerLayoutStyle); diff --git a/src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarTheme.cs b/src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarTheme.cs similarity index 85% rename from src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarTheme.cs rename to src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarTheme.cs index 5bf7abc70..c56208584 100644 --- a/src/AtomUI.Controls/Calendar/RangeCalendar/RangeCalendarTheme.cs +++ b/src/AtomUI.Controls/DatePicker/RangeCalendar/RangeCalendarTheme.cs @@ -15,7 +15,6 @@ public class RangeCalendarTheme : BaseControlTheme { public const string RootPart = "PART_Root"; public const string CalendarItemPart = "PART_CalendarItem"; - public const string SecondaryCalendarItemPart = "PART_SecondaryCalendarItem"; public const string FramePart = "PART_Frame"; public RangeCalendarTheme() @@ -45,7 +44,7 @@ public class RangeCalendarTheme : BaseControlTheme ClipToBounds = true }; TokenResourceBinder.CreateTokenBinding(rootLayout, StackPanel.SpacingProperty, - CalendarTokenResourceKey.RangeCalendarSpacing); + DatePickerTokenResourceKey.RangeCalendarSpacing); rootLayout.RegisterInNameScope(scope); var calendarItem = new RangeCalendarItem @@ -69,9 +68,9 @@ public class RangeCalendarTheme : BaseControlTheme commonStyle.Add(TemplatedControl.BorderBrushProperty, GlobalTokenResourceKey.ColorBorder); commonStyle.Add(TemplatedControl.CornerRadiusProperty, GlobalTokenResourceKey.BorderRadius); commonStyle.Add(TemplatedControl.BackgroundProperty, GlobalTokenResourceKey.ColorBgContainer); - commonStyle.Add(TemplatedControl.PaddingProperty, CalendarTokenResourceKey.PanelContentPadding); - commonStyle.Add(Layoutable.MinWidthProperty, CalendarTokenResourceKey.ItemPanelMinWidth); - commonStyle.Add(Layoutable.MinHeightProperty, CalendarTokenResourceKey.ItemPanelMinHeight); + commonStyle.Add(TemplatedControl.PaddingProperty, DatePickerTokenResourceKey.PanelContentPadding); + commonStyle.Add(Layoutable.MinWidthProperty, DatePickerTokenResourceKey.ItemPanelMinWidth); + commonStyle.Add(Layoutable.MinHeightProperty, DatePickerTokenResourceKey.ItemPanelMinHeight); Add(commonStyle); } } \ No newline at end of file diff --git a/src/AtomUI.Controls/GeneratedFiles/AtomUI.Generator/AtomUI.Generator.ControlThemeRegisterGenerator/ControlThemeRegister.g.cs b/src/AtomUI.Controls/GeneratedFiles/AtomUI.Generator/AtomUI.Generator.ControlThemeRegisterGenerator/ControlThemeRegister.g.cs index 51a31e229..806918d1d 100644 --- a/src/AtomUI.Controls/GeneratedFiles/AtomUI.Generator/AtomUI.Generator.ControlThemeRegisterGenerator/ControlThemeRegister.g.cs +++ b/src/AtomUI.Controls/GeneratedFiles/AtomUI.Generator/AtomUI.Generator.ControlThemeRegisterGenerator/ControlThemeRegister.g.cs @@ -23,14 +23,14 @@ ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.CalendarItemTheme()); ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.CalendarTheme()); ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.HeadTextButtonTheme()); - ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.RangeCalendarItemTheme()); - ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.RangeCalendarTheme()); ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.CheckBoxTheme()); ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.CollapseItemTheme()); ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.CollapseTheme()); ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.ComboBoxItemTheme()); ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.ComboBoxSpinnerInnerBoxTheme()); ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.ComboBoxTheme()); + ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.RangeCalendarItemTheme()); + ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.RangeCalendarTheme()); ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.EmptyIndicatorTheme()); ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.ExpanderTheme()); ThemeManager.Current.RegisterControlTheme(new AtomUI.Controls.MenuFlyoutPresenterTheme()); diff --git a/src/AtomUI.Controls/GeneratedFiles/AtomUI.Generator/AtomUI.Generator.TokenResourceKeyGenerator/ControlTokenRegister.g.cs b/src/AtomUI.Controls/GeneratedFiles/AtomUI.Generator/AtomUI.Generator.TokenResourceKeyGenerator/ControlTokenRegister.g.cs index 28e003932..3274750f7 100644 --- a/src/AtomUI.Controls/GeneratedFiles/AtomUI.Generator/AtomUI.Generator.TokenResourceKeyGenerator/ControlTokenRegister.g.cs +++ b/src/AtomUI.Controls/GeneratedFiles/AtomUI.Generator/AtomUI.Generator.TokenResourceKeyGenerator/ControlTokenRegister.g.cs @@ -14,6 +14,7 @@ ThemeManager.Current.RegisterControlTokenType(typeof(AtomUI.Controls.CheckBoxToken)); ThemeManager.Current.RegisterControlTokenType(typeof(AtomUI.Controls.CollapseToken)); ThemeManager.Current.RegisterControlTokenType(typeof(AtomUI.Controls.ComboBoxToken)); + ThemeManager.Current.RegisterControlTokenType(typeof(AtomUI.Controls.DatePickerToken)); ThemeManager.Current.RegisterControlTokenType(typeof(AtomUI.Controls.EmptyIndicatorToken)); ThemeManager.Current.RegisterControlTokenType(typeof(AtomUI.Controls.ExpanderToken)); ThemeManager.Current.RegisterControlTokenType(typeof(AtomUI.Controls.FlyoutPresenterToken)); diff --git a/src/AtomUI.Controls/GeneratedFiles/AtomUI.Generator/AtomUI.Generator.TokenResourceKeyGenerator/TokenResourceConst.g.cs b/src/AtomUI.Controls/GeneratedFiles/AtomUI.Generator/AtomUI.Generator.TokenResourceKeyGenerator/TokenResourceConst.g.cs index 598080ac2..a5d406e99 100644 --- a/src/AtomUI.Controls/GeneratedFiles/AtomUI.Generator/AtomUI.Generator.TokenResourceKeyGenerator/TokenResourceConst.g.cs +++ b/src/AtomUI.Controls/GeneratedFiles/AtomUI.Generator/AtomUI.Generator.TokenResourceKeyGenerator/TokenResourceConst.g.cs @@ -188,6 +188,27 @@ namespace AtomUI.Theme.Styling public static readonly TokenResourceKey PopupMarginToAnchor = new TokenResourceKey("ComboBox.PopupMarginToAnchor", "AtomUI.Token"); } + public static class DatePickerTokenResourceKey + { + public static readonly TokenResourceKey CellHoverBg = new TokenResourceKey("DatePicker.CellHoverBg", "AtomUI.Token"); + public static readonly TokenResourceKey CellActiveWithRangeBg = new TokenResourceKey("DatePicker.CellActiveWithRangeBg", "AtomUI.Token"); + public static readonly TokenResourceKey CellHoverWithRangeBg = new TokenResourceKey("DatePicker.CellHoverWithRangeBg", "AtomUI.Token"); + public static readonly TokenResourceKey CellBgDisabled = new TokenResourceKey("DatePicker.CellBgDisabled", "AtomUI.Token"); + public static readonly TokenResourceKey CellRangeBorderColor = new TokenResourceKey("DatePicker.CellRangeBorderColor", "AtomUI.Token"); + public static readonly TokenResourceKey CellHeight = new TokenResourceKey("DatePicker.CellHeight", "AtomUI.Token"); + public static readonly TokenResourceKey CellWidth = new TokenResourceKey("DatePicker.CellWidth", "AtomUI.Token"); + public static readonly TokenResourceKey CellLineHeight = new TokenResourceKey("DatePicker.CellLineHeight", "AtomUI.Token"); + public static readonly TokenResourceKey CellMargin = new TokenResourceKey("DatePicker.CellMargin", "AtomUI.Token"); + public static readonly TokenResourceKey ItemPanelMinWidth = new TokenResourceKey("DatePicker.ItemPanelMinWidth", "AtomUI.Token"); + public static readonly TokenResourceKey ItemPanelMinHeight = new TokenResourceKey("DatePicker.ItemPanelMinHeight", "AtomUI.Token"); + public static readonly TokenResourceKey TextHeight = new TokenResourceKey("DatePicker.TextHeight", "AtomUI.Token"); + public static readonly TokenResourceKey PanelContentPadding = new TokenResourceKey("DatePicker.PanelContentPadding", "AtomUI.Token"); + public static readonly TokenResourceKey WithoutTimeCellHeight = new TokenResourceKey("DatePicker.WithoutTimeCellHeight", "AtomUI.Token"); + public static readonly TokenResourceKey DayTitleHeight = new TokenResourceKey("DatePicker.DayTitleHeight", "AtomUI.Token"); + public static readonly TokenResourceKey HeaderMargin = new TokenResourceKey("DatePicker.HeaderMargin", "AtomUI.Token"); + public static readonly TokenResourceKey RangeCalendarSpacing = new TokenResourceKey("DatePicker.RangeCalendarSpacing", "AtomUI.Token"); + } + public static class EmptyIndicatorTokenResourceKey { public static readonly TokenResourceKey EmptyImgHeight = new TokenResourceKey("EmptyIndicator.EmptyImgHeight", "AtomUI.Token"); diff --git a/src/AtomUI.Controls/TimePicker/DateTimePickerPanel.cs b/src/AtomUI.Controls/TimePicker/DateTimePickerPanel.cs index d44f6cf41..b1a9f67b4 100644 --- a/src/AtomUI.Controls/TimePicker/DateTimePickerPanel.cs +++ b/src/AtomUI.Controls/TimePicker/DateTimePickerPanel.cs @@ -29,7 +29,7 @@ public enum DateTimePickerPanelType TimePeriod //AM or PM } -public class DateTimePickerPanel : Panel, ILogicalScrollable +internal class DateTimePickerPanel : Panel, ILogicalScrollable { /// /// Defines the property diff --git a/src/AtomUI.Controls/TimePicker/TimePickerPresenter.cs b/src/AtomUI.Controls/TimePicker/TimePickerPresenter.cs index 2f8220480..075589a3b 100644 --- a/src/AtomUI.Controls/TimePicker/TimePickerPresenter.cs +++ b/src/AtomUI.Controls/TimePicker/TimePickerPresenter.cs @@ -23,7 +23,7 @@ namespace AtomUI.Controls; [TemplatePart(TimePickerPresenterTheme.PeriodSelectorPart, typeof(DateTimePickerPanel), IsRequired = true)] [TemplatePart(TimePickerPresenterTheme.PickerContainerPart, typeof(Grid), IsRequired = true)] [TemplatePart(TimePickerPresenterTheme.SecondSpacerPart, typeof(Rectangle), IsRequired = true)] -public class TimePickerPresenter : PickerPresenterBase +internal class TimePickerPresenter : PickerPresenterBase { #region 公共属性定义