提交记录修改UI/Controls/Select/DateSelect.cs+49 −12看文件
修改UI/Themes/Select/DateSelect.xaml+17 −3看文件
| @@ -15,6 +15,31 @@ using UI.Controls.DatePickerBar; | ||
| 15 | 15 | |
| 16 | 16 | namespace UI.Controls.Select |
| 17 | 17 | { |
| 18 | 新增: public class DayModel | |
| 19 | 新增: { | |
| 20 | 新增: public DateTime Day { get; set; } | |
| 21 | 新增: public string DayText | |
| 22 | 新增: { | |
| 23 | 新增: get | |
| 24 | 新增: { | |
| 25 | 新增: return Day.Day.ToString(); | |
| 26 | 新增: } | |
| 27 | 新增: } | |
| 28 | 新增: public bool IsToday | |
| 29 | 新增: { | |
| 30 | 新增: get | |
| 31 | 新增: { | |
| 32 | 新增: return Day.Date == DateTime.Now.Date; | |
| 33 | 新增: } | |
| 34 | 新增: } | |
| 35 | 新增: public bool IsOut | |
| 36 | 新增: { | |
| 37 | 新增: get | |
| 38 | 新增: { | |
| 39 | 新增: return Day.Date > DateTime.Now.Date; | |
| 40 | 新增: } | |
| 41 | 新增: } | |
| 42 | 新增: } | |
| 18 | 43 | public class DateSelect : Control |
| 19 | 44 | { |
| 20 | 45 | public DateSelectType SelectType |
| @@ -62,14 +87,14 @@ namespace UI.Controls.Select | ||
| 62 | 87 | typeof(DateSelect) |
| 63 | 88 | ); |
| 64 | 89 | |
| 65 | 删除: public string Day | |
| 90 | 新增: public DayModel Day | |
| 66 | 91 | { |
| 67 | 删除: get { return (string)GetValue(DayProperty); } | |
| 92 | 新增: get { return (DayModel)GetValue(DayProperty); } | |
| 68 | 93 | set { SetValue(DayProperty, value); } |
| 69 | 94 | } |
| 70 | 95 | public static readonly DependencyProperty DayProperty = |
| 71 | 96 | DependencyProperty.Register("Day", |
| 72 | 删除: typeof(string), | |
| 97 | 新增: typeof(DayModel), | |
| 73 | 98 | typeof(DateSelect) |
| 74 | 99 | ); |
| 75 | 100 | public string DateStr |
| @@ -82,14 +107,14 @@ namespace UI.Controls.Select | ||
| 82 | 107 | typeof(string), |
| 83 | 108 | typeof(DateSelect) |
| 84 | 109 | ); |
| 85 | 删除: public List<string> Days | |
| 110 | 新增: public List<DayModel> Days | |
| 86 | 111 | { |
| 87 | 删除: get { return (List<string>)GetValue(DaysProperty); } | |
| 112 | 新增: get { return (List<DayModel>)GetValue(DaysProperty); } | |
| 88 | 113 | set { SetValue(DaysProperty, value); } |
| 89 | 114 | } |
| 90 | 115 | public static readonly DependencyProperty DaysProperty = |
| 91 | 116 | DependencyProperty.Register("Days", |
| 92 | 删除: typeof(List<string>), | |
| 117 | 新增: typeof(List<DayModel>), | |
| 93 | 118 | typeof(DateSelect) |
| 94 | 119 | ); |
| 95 | 120 | |
| @@ -122,6 +147,7 @@ namespace UI.Controls.Select | ||
| 122 | 147 | |
| 123 | 148 | private bool IsFirstClick = false; |
| 124 | 149 | private Border SelectContainer; |
| 150 | 新增: private DateTime SelectedDay; | |
| 125 | 151 | public DateSelect() |
| 126 | 152 | { |
| 127 | 153 | DefaultStyleKey = typeof(DateSelect); |
| @@ -137,7 +163,12 @@ namespace UI.Controls.Select | ||
| 137 | 163 | |
| 138 | 164 | Month = Date.Month; |
| 139 | 165 | |
| 140 | 删除: Day = Date.Day.ToString(); | |
| 166 | 新增: //Day = new DayModel() | |
| 167 | 新增: //{ | |
| 168 | 新增: // Day = Date.Date, | |
| 169 | 新增: //}; | |
| 170 | 新增: | |
| 171 | 新增: SelectedDay = Date.Date; | |
| 141 | 172 | |
| 142 | 173 | mouseProc = HookCallback; |
| 143 | 174 | |
| @@ -200,7 +231,12 @@ namespace UI.Controls.Select | ||
| 200 | 231 | } |
| 201 | 232 | private void OnDone(object obj) |
| 202 | 233 | { |
| 203 | 删除: Date = new DateTime(Year, Month, int.Parse(Day)); | |
| 234 | 新增: | |
| 235 | 新增: Date = new DateTime(Year, Month, Day != null ? int.Parse(Day.DayText) : 1); | |
| 236 | 新增: if (Day != null) | |
| 237 | 新增: { | |
| 238 | 新增: SelectedDay = Day.Day; | |
| 239 | 新增: } | |
| 204 | 240 | |
| 205 | 241 | UpdateDateStr(); |
| 206 | 242 | |
| @@ -216,7 +252,7 @@ namespace UI.Controls.Select | ||
| 216 | 252 | } |
| 217 | 253 | Month = newMonth; |
| 218 | 254 | |
| 219 | 删除: Day = "1"; | |
| 255 | 新增: //Day = new DayModel() { Day = new DateTime(Year, Month, 1).Date }; | |
| 220 | 256 | |
| 221 | 257 | UpdateDays(); |
| 222 | 258 | |
| @@ -232,7 +268,7 @@ namespace UI.Controls.Select | ||
| 232 | 268 | } |
| 233 | 269 | Year = newYear; |
| 234 | 270 | |
| 235 | 删除: Day = "1"; | |
| 271 | 新增: //Day = new DayModel() { Day = new DateTime(Year, Month, 1).Date }; | |
| 236 | 272 | |
| 237 | 273 | UpdateDays(); |
| 238 | 274 | } |
| @@ -269,14 +305,15 @@ namespace UI.Controls.Select | ||
| 269 | 305 | |
| 270 | 306 | private void UpdateDays() |
| 271 | 307 | { |
| 272 | 删除: var list = new List<string>(); | |
| 308 | 新增: var list = new List<DayModel>(); | |
| 273 | 309 | int days = DateTime.DaysInMonth(Year, Month); |
| 274 | 310 | for (int i = 1; i < days + 1; i++) |
| 275 | 311 | { |
| 276 | 删除: list.Add(i.ToString()); | |
| 312 | 新增: list.Add(new DayModel() { Day = new DateTime(Year, Month, i).Date }); | |
| 277 | 313 | } |
| 278 | 314 | Days = list; |
| 279 | 315 | |
| 316 | 新增: Day = list.Where(m => m.Day == SelectedDay).FirstOrDefault(); | |
| 280 | 317 | } |
| 281 | 318 | |
| 282 | 319 | private void UpdateDateStr() |
| @@ -24,7 +24,7 @@ | ||
| 24 | 24 | <Border.InputBindings> |
| 25 | 25 | <MouseBinding Gesture="LeftClick" Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:DateSelect}}, Path=ShowSelectCommand}"/> |
| 26 | 26 | </Border.InputBindings> |
| 27 | 删除: | |
| 27 | 新增: | |
| 28 | 28 | <StackPanel Orientation="Horizontal"> |
| 29 | 29 | <base:Icon x:Name="Icon" IconType="DateTime"/> |
| 30 | 30 | <TextBlock Foreground="#1a1a1a" Text="{TemplateBinding DateStr}" VerticalAlignment="Center" Margin="5,0,0,0"/> |
| @@ -111,6 +111,15 @@ | ||
| 111 | 111 | <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center"/> |
| 112 | 112 | </Border> |
| 113 | 113 | <ControlTemplate.Triggers> |
| 114 | 新增: <DataTrigger Binding="{Binding IsOut}" Value="True"> | |
| 115 | 新增: <Setter Property="Foreground" Value="#ccc"/> | |
| 116 | 新增: <Setter Property="IsEnabled" Value="False"/> | |
| 117 | 新增: </DataTrigger> | |
| 118 | 新增: <DataTrigger Binding="{Binding IsToday}" Value="True"> | |
| 119 | 新增: <Setter TargetName="Border" Property="Background" Value="#FFF2F1FF"/> | |
| 120 | 新增: <Setter Property="Foreground" Value="#2b20d9"/> | |
| 121 | 新增: | |
| 122 | 新增: </DataTrigger> | |
| 114 | 123 | <Trigger Property="IsMouseOver" Value="True"> |
| 115 | 124 | <Setter TargetName="Border" Property="Background" Value="#FFE8E6FF"/> |
| 116 | 125 | <!--<Setter TargetName="Border" Property="BorderBrush" Value="#2b20d9"/>--> |
| @@ -140,12 +149,17 @@ | ||
| 140 | 149 | |
| 141 | 150 | <WrapPanel Orientation="Horizontal"> |
| 142 | 151 | <Border > |
| 143 | 删除: | |
| 144 | 删除: <TextBlock Text="{Binding}" /> | |
| 152 | 新增: <!--<Grid> | |
| 153 | 新增: <base:View Value="{Binding IsToday}" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,-5,-5,0"> | |
| 154 | 新增: <Rectangle RadiusX="10" RadiusY="10" Width="5" Height="5" Fill="Red"></Rectangle> | |
| 155 | 新增: </base:View> | |
| 156 | 新增: </Grid>--> | |
| 157 | 新增: <TextBlock Text="{Binding DayText}" /> | |
| 145 | 158 | |
| 146 | 159 | </Border> |
| 147 | 160 | |
| 148 | 161 | </WrapPanel> |
| 162 | 新增: | |
| 149 | 163 | </DataTemplate> |
| 150 | 164 | </ListView.ItemTemplate> |
| 151 | 165 | </ListView> |

