提交记录修改UI/Controls/Navigation/Navigation.cs+38 −44看文件
修改UI/Controls/Tabbar/Tabbar.cs+55 −146看文件
修改UI/Resources/Themes/Dark/Navigation/NavigationItem.xaml+13 −4看文件
修改UI/Resources/Themes/Light/Navigation/NavigationItem.xaml+15 −6看文件
| @@ -2,6 +2,7 @@ | ||
| 2 | 2 | using System.Collections.Generic; |
| 3 | 3 | using System.Collections.ObjectModel; |
| 4 | 4 | using System.Collections.Specialized; |
| 5 | 新增:using System.Diagnostics; | |
| 5 | 6 | using System.Linq; |
| 6 | 7 | using System.Text; |
| 7 | 8 | using System.Windows; |
| @@ -224,18 +225,49 @@ namespace UI.Controls.Navigation | ||
| 224 | 225 | |
| 225 | 226 | private StackPanel ItemsPanel; |
| 226 | 227 | private Dictionary<int, NavigationItem> ItemsDictionary; |
| 227 | 删除: | |
| 228 | 228 | // 选中标记块 |
| 229 | 229 | private Border ActiveBlock; |
| 230 | 230 | // 动画 |
| 231 | 231 | Storyboard storyboard; |
| 232 | 新增: // 滚动动画 | |
| 233 | 新增: DoubleAnimation scrollAnimation; | |
| 234 | 新增: // 伸缩动画 | |
| 235 | 新增: DoubleAnimation stretchAnimation; | |
| 236 | 新增: | |
| 232 | 237 | public Navigation() |
| 233 | 238 | { |
| 234 | 239 | DefaultStyleKey = typeof(Navigation); |
| 235 | 240 | ItemsDictionary = new Dictionary<int, NavigationItem>(); |
| 241 | 新增: } | |
| 242 | 新增: | |
| 243 | 新增: #region create animation | |
| 244 | 新增: private void CreateAnimations() | |
| 245 | 新增: { | |
| 236 | 246 | storyboard = new Storyboard(); |
| 247 | 新增: scrollAnimation = new DoubleAnimation(); | |
| 248 | 新增: stretchAnimation = new DoubleAnimation(); | |
| 249 | 新增: | |
| 250 | 新增: // 滚动动画 | |
| 251 | 新增: scrollAnimation.EasingFunction = new SineEase() { EasingMode = EasingMode.EaseIn }; | |
| 252 | 新增: scrollAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.35)); | |
| 253 | 新增: | |
| 254 | 新增: Storyboard.SetTarget(scrollAnimation, ActiveBlock); | |
| 255 | 新增: Storyboard.SetTargetProperty(scrollAnimation, new PropertyPath("RenderTransform.Children[0].Y")); | |
| 256 | 新增: | |
| 257 | 新增: // 伸缩动画 | |
| 258 | 新增: stretchAnimation.AutoReverse = true; | |
| 259 | 新增: stretchAnimation.EasingFunction = new SineEase() { EasingMode = EasingMode.EaseIn }; | |
| 260 | 新增: stretchAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.35)); | |
| 261 | 新增: | |
| 262 | 新增: Storyboard.SetTarget(stretchAnimation, ActiveBlock); | |
| 263 | 新增: Storyboard.SetTargetProperty(stretchAnimation, new PropertyPath("RenderTransform.Children[1].ScaleY")); | |
| 264 | 新增: | |
| 265 | 新增: storyboard.Children.Add(stretchAnimation); | |
| 266 | 新增: storyboard.Children.Add(scrollAnimation); | |
| 237 | 267 | } |
| 268 | 新增: #endregion | |
| 238 | 269 | |
| 270 | 新增: #region temp region | |
| 239 | 271 | private void Data_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) |
| 240 | 272 | { |
| 241 | 273 | if (e.Action == NotifyCollectionChangedAction.Add) |
| @@ -271,6 +303,7 @@ namespace UI.Controls.Navigation | ||
| 271 | 303 | ItemsPanel = GetTemplateChild("ItemsPanel") as StackPanel; |
| 272 | 304 | ActiveBlock = GetTemplateChild("ActiveBlock") as Border; |
| 273 | 305 | |
| 306 | 新增: CreateAnimations(); | |
| 274 | 307 | Render(); |
| 275 | 308 | } |
| 276 | 309 | private int CreateID() |
| @@ -294,7 +327,7 @@ namespace UI.Controls.Navigation | ||
| 294 | 327 | navItem.IconColor = item.IconColor; |
| 295 | 328 | navItem.BadgeText = item.BadgeText; |
| 296 | 329 | navItem.Uri = item.Uri; |
| 297 | 删除: | |
| 330 | 新增: | |
| 298 | 331 | if (!string.IsNullOrEmpty(item.Title)) |
| 299 | 332 | { |
| 300 | 333 | navItem.MouseUp += NavItem_MouseUp; |
| @@ -360,6 +393,7 @@ namespace UI.Controls.Navigation | ||
| 360 | 393 | }; |
| 361 | 394 | } |
| 362 | 395 | } |
| 396 | 新增: #endregion | |
| 363 | 397 | |
| 364 | 398 | private void ScrollToActive() |
| 365 | 399 | { |
| @@ -370,58 +404,27 @@ namespace UI.Controls.Navigation | ||
| 370 | 404 | } |
| 371 | 405 | var item = ItemsDictionary[SelectedItem.ID]; |
| 372 | 406 | item.IsSelected = true; |
| 373 | 删除: //var index = Data.IndexOf(SelectedItem); | |
| 374 | 407 | |
| 375 | 删除: //ActiveBlock.Height = item.ActualHeight * Data.Count; | |
| 376 | 408 | |
| 377 | 409 | // 选中项的坐标 |
| 378 | 410 | Point relativePoint = item.TransformToAncestor(this).Transform(new Point(0, 0)); |
| 379 | 411 | |
| 380 | 删除: // 创建动画 | |
| 381 | 删除: | |
| 382 | 412 | // 设定动画方向 |
| 383 | 413 | var activeBlockTTF = (ActiveBlock.RenderTransform as TransformGroup).Children[0] as TranslateTransform; |
| 384 | 删除: | |
| 385 | 删除: //var transformGroup = new TransformGroup(); | |
| 386 | 删除: //transformGroup.Children.Add(new TranslateTransform(0, activeBlockTTF.Y)); | |
| 387 | 删除: //transformGroup.Children.Add(new ScaleTransform(1, 1, 0, 0)); | |
| 388 | 删除: | |
| 389 | 删除: //ActiveBlock.RenderTransform = transformGroup; | |
| 390 | 删除: | |
| 391 | 删除: | |
| 392 | 删除: storyboard.Children.Clear(); | |
| 393 | 删除: DoubleAnimation scrollAnimation = new DoubleAnimation(); | |
| 394 | 删除: //scrollAnimation.From = activeBlockTTF.Y; | |
| 395 | 414 | scrollAnimation.To = relativePoint.Y + 8; |
| 396 | 415 | |
| 397 | 删除: scrollAnimation.EasingFunction = new SineEase() { EasingMode = EasingMode.EaseIn }; | |
| 398 | 删除: Storyboard.SetTarget(scrollAnimation, ActiveBlock); | |
| 399 | 删除: Storyboard.SetTargetProperty(scrollAnimation, new PropertyPath("RenderTransform.Children[0].Y")); | |
| 400 | 删除: | |
| 401 | 删除: scrollAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.35)); | |
| 402 | 删除: | |
| 403 | 416 | // 伸缩动画 |
| 404 | 删除: DoubleAnimation stretchAnimation = new DoubleAnimation(); | |
| 405 | 删除: stretchAnimation.AutoReverse = true; | |
| 417 | 新增: | |
| 406 | 418 | stretchAnimation.To = 1.6; |
| 407 | 删除: stretchAnimation.EasingFunction = new SineEase() { EasingMode = EasingMode.EaseIn }; | |
| 408 | 删除: Storyboard.SetTarget(stretchAnimation, ActiveBlock); | |
| 409 | 删除: Storyboard.SetTargetProperty(stretchAnimation, new PropertyPath("RenderTransform.Children[1].ScaleY")); | |
| 410 | 删除: stretchAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.35)); | |
| 411 | 419 | |
| 412 | 420 | if (relativePoint.Y > activeBlockTTF.Y) |
| 413 | 421 | { |
| 414 | 422 | // 向下移动 |
| 415 | 删除: | |
| 416 | 423 | var transformGroup = new TransformGroup(); |
| 417 | 424 | transformGroup.Children.Add(new TranslateTransform(0, activeBlockTTF.Y)); |
| 418 | 425 | transformGroup.Children.Add(new ScaleTransform(1, 1, 0, 200)); |
| 419 | 426 | |
| 420 | 427 | ActiveBlock.RenderTransform = transformGroup; |
| 421 | 删除: | |
| 422 | 删除: //stretchAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.3)); | |
| 423 | 删除: | |
| 424 | 删除: | |
| 425 | 428 | } |
| 426 | 429 | else |
| 427 | 430 | { |
| @@ -430,18 +433,9 @@ namespace UI.Controls.Navigation | ||
| 430 | 433 | transformGroup.Children.Add(new ScaleTransform(1, 1, 0, 0)); |
| 431 | 434 | |
| 432 | 435 | ActiveBlock.RenderTransform = transformGroup; |
| 433 | 删除: //var transformGroup = new TransformGroup(); | |
| 434 | 删除: //transformGroup.Children.Add(new TranslateTransform(0, activeBlockTTF.Y)); | |
| 435 | 删除: //transformGroup.Children.Add(new ScaleTransform(1, .1, 0, 0)); | |
| 436 | 436 | |
| 437 | 删除: //ActiveBlock.RenderTransform = transformGroup; | |
| 438 | 437 | } |
| 439 | 删除: | |
| 440 | 删除: | |
| 441 | 删除: storyboard.Children.Add(stretchAnimation); | |
| 442 | 删除: | |
| 443 | 删除: storyboard.Children.Add(scrollAnimation); | |
| 444 | 删除: | |
| 438 | 新增: | |
| 445 | 439 | storyboard.Begin(); |
| 446 | 440 | } |
| 447 | 441 | } |
| @@ -54,16 +54,7 @@ namespace UI.Controls.Tabbar | ||
| 54 | 54 | } |
| 55 | 55 | } |
| 56 | 56 | public static readonly DependencyProperty DataProperty = |
| 57 | 删除: DependencyProperty.Register("Data", typeof(ObservableCollection<string>), typeof(Tabbar), new PropertyMetadata(new PropertyChangedCallback(OnDataChanged))); | |
| 58 | 删除: | |
| 59 | 删除: private static void OnDataChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) | |
| 60 | 删除: { | |
| 61 | 删除: var control = d as Tabbar; | |
| 62 | 删除: if (e.NewValue != e.OldValue) | |
| 63 | 删除: { | |
| 64 | 删除: | |
| 65 | 删除: } | |
| 66 | 删除: } | |
| 57 | 新增: DependencyProperty.Register("Data", typeof(ObservableCollection<string>), typeof(Tabbar)); | |
| 67 | 58 | |
| 68 | 59 | |
| 69 | 60 | //private StackPanel ItemsPanel; |
| @@ -73,42 +64,16 @@ namespace UI.Controls.Tabbar | ||
| 73 | 64 | private Border ActiveBlock; |
| 74 | 65 | // 动画 |
| 75 | 66 | Storyboard storyboard; |
| 67 | 新增: DoubleAnimation scrollAnimation; | |
| 68 | 新增: ColorAnimation fontColorAnimation; | |
| 69 | 新增: ColorAnimation oldFontColorAnimation; | |
| 76 | 70 | public Tabbar() |
| 77 | 71 | { |
| 78 | 72 | DefaultStyleKey = typeof(Tabbar); |
| 79 | 73 | ItemsDictionary = new List<TextBlock>(); |
| 80 | 删除: storyboard = new Storyboard(); | |
| 81 | 删除: //SelectedTextColor = (Color)ColorConverter.ConvertFromString("#2b20d9"); | |
| 82 | 74 | } |
| 83 | 75 | |
| 84 | 删除: private void Data_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) | |
| 85 | 删除: { | |
| 86 | 删除: //if (e.Action == NotifyCollectionChangedAction.Add) | |
| 87 | 删除: //{ | |
| 88 | 删除: // foreach (var item in e.NewItems) | |
| 89 | 删除: // { | |
| 90 | 删除: // AddItem(item as NavigationItemModel); | |
| 91 | 删除: // } | |
| 92 | 删除: //} | |
| 93 | 删除: //if (e.Action == NotifyCollectionChangedAction.Remove) | |
| 94 | 删除: //{ | |
| 95 | 删除: // foreach (var item in e.OldItems) | |
| 96 | 删除: // { | |
| 97 | 删除: // RemoveItem(item as NavigationItemModel); | |
| 98 | 删除: // } | |
| 99 | 删除: //} | |
| 100 | 删除: //if (e.Action == NotifyCollectionChangedAction.Replace) | |
| 101 | 删除: //{ | |
| 102 | 删除: // foreach (var ritem in e.NewItems) | |
| 103 | 删除: // { | |
| 104 | 删除: // var item = ritem as NavigationItemModel; | |
| 105 | 删除: // var id = item.ID; | |
| 106 | 删除: // ItemsDictionary[id].Icon = item.Icon; | |
| 107 | 删除: // ItemsDictionary[id].Title = item.Title; | |
| 108 | 删除: | |
| 109 | 删除: // } | |
| 110 | 删除: //} | |
| 111 | 删除: } | |
| 76 | 新增: | |
| 112 | 77 | |
| 113 | 78 | public override void OnApplyTemplate() |
| 114 | 79 | { |
| @@ -116,6 +81,8 @@ namespace UI.Controls.Tabbar | ||
| 116 | 81 | //ItemsPanel = GetTemplateChild("ItemsPanel") as StackPanel; |
| 117 | 82 | ActiveBlock = GetTemplateChild("ActiveBlock") as Border; |
| 118 | 83 | ItemsContainer = GetTemplateChild("ItemsContainer") as Grid; |
| 84 | 新增: | |
| 85 | 新增: CreateAnimations(); | |
| 119 | 86 | Render(); |
| 120 | 87 | } |
| 121 | 88 | |
| @@ -128,7 +95,7 @@ namespace UI.Controls.Tabbar | ||
| 128 | 95 | control.TextAlignment = TextAlignment.Center; |
| 129 | 96 | control.Text = item; |
| 130 | 97 | control.Margin = new Thickness(0, 0, 10, 0); |
| 131 | 删除: control.FontSize = 18; | |
| 98 | 新增: control.FontSize = 16; | |
| 132 | 99 | control.Cursor = Cursors.Hand; |
| 133 | 100 | control.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#1F1F1F")); |
| 134 | 101 | control.VerticalAlignment = VerticalAlignment.Bottom; |
| @@ -186,118 +153,84 @@ namespace UI.Controls.Tabbar | ||
| 186 | 153 | } |
| 187 | 154 | } |
| 188 | 155 | |
| 189 | 删除: private void ScrollToActive(int oldSelectedIndex = 0) | |
| 156 | 新增: #region create animations | |
| 157 | 新增: private void CreateAnimations() | |
| 190 | 158 | { |
| 191 | 删除: if (oldSelectedIndex > ItemsDictionary.Count || ItemsDictionary.Count == 0 || !IsLoaded) | |
| 192 | 删除: { | |
| 193 | 删除: return; | |
| 194 | 删除: } | |
| 195 | 删除: // 获取选中项 | |
| 196 | 删除: Debug.WriteLine(IsLoaded + ""); | |
| 197 | 删除: var item = ItemsDictionary[SelectedIndex]; | |
| 198 | 删除: var oldSelectedItem = ItemsDictionary[oldSelectedIndex]; | |
| 159 | 新增: storyboard = new Storyboard(); | |
| 160 | 新增: scrollAnimation = new DoubleAnimation(); | |
| 161 | 新增: //scrollAnimation.EasingFunction = new BackEase() { EasingMode = EasingMode.EaseInOut}; | |
| 162 | 新增: scrollAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.15)); | |
| 199 | 163 | |
| 200 | 删除: //ActiveBlock.Height = item.ActualHeight * Data.Count; | |
| 164 | 新增: Storyboard.SetTarget(scrollAnimation, ActiveBlock); | |
| 165 | 新增: Storyboard.SetTargetProperty(scrollAnimation, new PropertyPath("RenderTransform.Children[0].X")); | |
| 201 | 166 | |
| 202 | 删除: // 选中项的坐标 | |
| 203 | 删除: Point relativePoint = item.TransformToAncestor(this).Transform(new Point(0, 0)); | |
| 204 | 167 | |
| 205 | 删除: // 创建动画 | |
| 206 | 168 | |
| 207 | 删除: // 设定动画方向 | |
| 208 | 删除: //var activeBlockTTF = (ActiveBlock.RenderTransform as TransformGroup).Children[0] as TranslateTransform; | |
| 209 | 169 | |
| 210 | 删除: //var transformGroup = new TransformGroup(); | |
| 211 | 删除: //transformGroup.Children.Add(new TranslateTransform(0, activeBlockTTF.Y)); | |
| 212 | 删除: //transformGroup.Children.Add(new ScaleTransform(1, 1, 0, 0)); | |
| 170 | 新增: fontColorAnimation = new ColorAnimation(); | |
| 171 | 新增: //fontColorAnimation.EasingFunction = new SineEase() { EasingMode = EasingMode.EaseIn }; | |
| 172 | 新增: fontColorAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.1)); | |
| 213 | 173 | |
| 214 | 删除: //ActiveBlock.RenderTransform = transformGroup; | |
| 174 | 新增: Storyboard.SetTargetProperty(fontColorAnimation, new PropertyPath("(TextBlock.Foreground).(SolidColorBrush.Color)")); | |
| 215 | 175 | |
| 216 | 176 | |
| 217 | 删除: storyboard.Children.Clear(); | |
| 177 | 新增: oldFontColorAnimation = new ColorAnimation(); | |
| 178 | 新增: oldFontColorAnimation.To = (Color)ColorConverter.ConvertFromString("#CCCCCC"); | |
| 179 | 新增: oldFontColorAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.3)); | |
| 218 | 180 | |
| 219 | 删除: var activeBlockTG = ActiveBlock.RenderTransform as TransformGroup; | |
| 220 | 删除: var blockOldX = (activeBlockTG.Children[0] as TranslateTransform).X; | |
| 221 | 删除: DoubleAnimation scrollAnimation = new DoubleAnimation(); | |
| 222 | 删除: //scrollAnimation.From = activeBlockTTF.Y; | |
| 223 | 删除: //double scrollX = relativePoint.X + item.ActualWidth / 2 - ActiveBlock.ActualWidth / 2; | |
| 224 | 删除: double scrollX = relativePoint.X; | |
| 181 | 新增: //oldFontColorAnimation.EasingFunction = new SineEase() { EasingMode = EasingMode.EaseIn }; | |
| 182 | 新增: Storyboard.SetTargetProperty(oldFontColorAnimation, new PropertyPath("(TextBlock.Foreground).(SolidColorBrush.Color)")); | |
| 225 | 183 | |
| 226 | 删除: scrollX = scrollX < 0 ? 0 : scrollX; | |
| 227 | 184 | |
| 228 | 删除: //scrollX= scrollX + item.ActualWidth / 2 - ActiveBlock.ActualWidth / 2; | |
| 229 | 删除: if (scrollX != 0) | |
| 185 | 新增: //storyboard.Children.Add(oldFontColorAnimation); | |
| 186 | 新增: storyboard.Children.Add(scrollAnimation); | |
| 187 | 新增: storyboard.Children.Add(fontColorAnimation); | |
| 188 | 新增: | |
| 189 | 新增: } | |
| 190 | 新增: #endregion | |
| 191 | 新增: private void ScrollToActive(int oldSelectedIndex = 0) | |
| 192 | 新增: { | |
| 193 | 新增: Stopwatch sw = new Stopwatch(); | |
| 194 | 新增: sw.Start(); | |
| 195 | 新增: if (oldSelectedIndex > ItemsDictionary.Count || ItemsDictionary.Count == 0 || !IsLoaded) | |
| 230 | 196 | { |
| 231 | 删除: //scrollX = scrollX > blockOldX ? scrollX - 10 : scrollX; | |
| 197 | 新增: return; | |
| 232 | 198 | } |
| 199 | 新增: // 获取选中项 | |
| 200 | 新增: var item = ItemsDictionary[SelectedIndex]; | |
| 201 | 新增: var oldSelectedItem = ItemsDictionary[oldSelectedIndex]; | |
| 233 | 202 | |
| 234 | 删除: Debug.WriteLine(blockOldX + " -> " + scrollX); | |
| 235 | 删除: scrollAnimation.To = scrollX; | |
| 236 | 删除: | |
| 237 | 删除: scrollAnimation.EasingFunction = new SineEase() { EasingMode = EasingMode.EaseIn }; | |
| 238 | 删除: Storyboard.SetTarget(scrollAnimation, ActiveBlock); | |
| 239 | 删除: Storyboard.SetTargetProperty(scrollAnimation, new PropertyPath("RenderTransform.Children[0].X")); | |
| 240 | 删除: | |
| 241 | 删除: scrollAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.15)); | |
| 242 | 删除: | |
| 243 | 删除: // 文字大小动画 | |
| 244 | 删除: DoubleAnimation fontSizeAnimation = new DoubleAnimation(); | |
| 245 | 删除: //scrollAnimation.From = activeBlockTTF.Y; | |
| 246 | 删除: fontSizeAnimation.To = 18; | |
| 203 | 新增: // 选中项的坐标 | |
| 204 | 新增: Point relativePoint = item.TransformToAncestor(this).Transform(new Point(0, 0)); | |
| 247 | 205 | |
| 248 | 删除: fontSizeAnimation.EasingFunction = new SineEase() { EasingMode = EasingMode.EaseIn }; | |
| 249 | 删除: Storyboard.SetTarget(fontSizeAnimation, item); | |
| 250 | 删除: Storyboard.SetTargetProperty(fontSizeAnimation, new PropertyPath("FontSize")); | |
| 206 | 新增: double scrollX = relativePoint.X; | |
| 251 | 207 | |
| 252 | 删除: fontSizeAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.1)); | |
| 208 | 新增: scrollX = scrollX < 0 ? 0 : scrollX; | |
| 209 | 新增: scrollAnimation.To = scrollX; | |
| 210 | 新增: | |
| 211 | 新增: | |
| 253 | 212 | |
| 254 | 213 | |
| 255 | 214 | |
| 256 | 215 | // 文字颜色动画 |
| 257 | 删除: ColorAnimation fontColorAnimation = new ColorAnimation(); | |
| 258 | 删除: //scrollAnimation.From = activeBlockTTF.Y; | |
| 259 | 216 | fontColorAnimation.To = SelectedTextColor; |
| 260 | 删除: | |
| 261 | 删除: fontColorAnimation.EasingFunction = new SineEase() { EasingMode = EasingMode.EaseIn }; | |
| 262 | 217 | Storyboard.SetTarget(fontColorAnimation, item); |
| 263 | 删除: Storyboard.SetTargetProperty(fontColorAnimation, new PropertyPath("(TextBlock.Foreground).(SolidColorBrush.Color)")); | |
| 264 | 删除: | |
| 265 | 删除: fontColorAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.1)); | |
| 266 | 删除: | |
| 267 | 删除: | |
| 268 | 删除: storyboard.Children.Add(scrollAnimation); | |
| 269 | 删除: storyboard.Children.Add(fontSizeAnimation); | |
| 270 | 删除: | |
| 271 | 删除: storyboard.Children.Add(fontColorAnimation); | |
| 272 | 218 | |
| 273 | 219 | |
| 274 | 220 | if (oldSelectedIndex != SelectedIndex) |
| 275 | 221 | { |
| 276 | 删除: DoubleAnimation oldFontSizeAnimation = new DoubleAnimation(); | |
| 277 | 删除: //scrollAnimation.From = activeBlockTTF.Y; | |
| 278 | 删除: oldFontSizeAnimation.To = 14; | |
| 279 | 删除: | |
| 280 | 删除: oldFontSizeAnimation.EasingFunction = new SineEase() { EasingMode = EasingMode.EaseIn }; | |
| 281 | 删除: Storyboard.SetTarget(oldFontSizeAnimation, oldSelectedItem); | |
| 282 | 删除: Storyboard.SetTargetProperty(oldFontSizeAnimation, new PropertyPath("FontSize")); | |
| 283 | 删除: | |
| 284 | 删除: oldFontSizeAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.1)); | |
| 285 | 删除: | |
| 286 | 删除: ColorAnimation oldFontColorAnimation = new ColorAnimation(); | |
| 287 | 删除: //scrollAnimation.From = activeBlockTTF.Y; | |
| 288 | 删除: oldFontColorAnimation.To = (Color)ColorConverter.ConvertFromString("#CCCCCC"); | |
| 289 | 删除: | |
| 290 | 删除: oldFontColorAnimation.EasingFunction = new SineEase() { EasingMode = EasingMode.EaseIn }; | |
| 291 | 222 | Storyboard.SetTarget(oldFontColorAnimation, oldSelectedItem); |
| 292 | 删除: Storyboard.SetTargetProperty(oldFontColorAnimation, new PropertyPath("(TextBlock.Foreground).(SolidColorBrush.Color)")); | |
| 293 | 删除: | |
| 294 | 删除: oldFontColorAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.3)); | |
| 295 | 删除: | |
| 296 | 删除: storyboard.Children.Add(oldFontSizeAnimation); | |
| 297 | 223 | storyboard.Children.Add(oldFontColorAnimation); |
| 298 | 删除: | |
| 224 | 新增: } | |
| 225 | 新增: else | |
| 226 | 新增: { | |
| 227 | 新增: storyboard.Children.Remove(oldFontColorAnimation); | |
| 299 | 228 | } |
| 300 | 229 | storyboard.Begin(); |
| 230 | 新增: | |
| 231 | 新增: Debug.WriteLine("【耗时】" + sw.ElapsedMilliseconds); | |
| 232 | 新增: sw.Stop(); | |
| 233 | 新增: | |
| 301 | 234 | } |
| 302 | 235 | |
| 303 | 236 | private void Reset() |
| @@ -309,35 +242,11 @@ namespace UI.Controls.Tabbar | ||
| 309 | 242 | if (item != ItemsContainer.Children[SelectedIndex]) |
| 310 | 243 | { |
| 311 | 244 | var text = item as TextBlock; |
| 312 | 删除: text.FontSize = 14; | |
| 313 | 245 | text.Foreground = UI.Base.Color.Colors.GetFromString("#ccc"); |
| 314 | 246 | |
| 315 | 删除: //DoubleAnimation fontSizeAnimation = new DoubleAnimation(); | |
| 316 | 删除: ////scrollAnimation.From = activeBlockTTF.Y; | |
| 317 | 删除: //fontSizeAnimation.To = 14; | |
| 318 | 删除: | |
| 319 | 删除: //fontSizeAnimation.EasingFunction = new SineEase() { EasingMode = EasingMode.EaseIn }; | |
| 320 | 删除: //Storyboard.SetTarget(fontSizeAnimation, (UIElement)item); | |
| 321 | 删除: //Storyboard.SetTargetProperty(fontSizeAnimation, new PropertyPath("FontSize")); | |
| 322 | 删除: | |
| 323 | 删除: //fontSizeAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.1)); | |
| 324 | 删除: | |
| 325 | 删除: //ColorAnimation oldFontColorAnimation = new ColorAnimation(); | |
| 326 | 删除: ////scrollAnimation.From = activeBlockTTF.Y; | |
| 327 | 删除: //oldFontColorAnimation.To = (Color)ColorConverter.ConvertFromString("#CCCCCC"); | |
| 328 | 删除: | |
| 329 | 删除: //oldFontColorAnimation.EasingFunction = new SineEase() { EasingMode = EasingMode.EaseIn }; | |
| 330 | 删除: //Storyboard.SetTarget(oldFontColorAnimation, (UIElement)item); | |
| 331 | 删除: //Storyboard.SetTargetProperty(oldFontColorAnimation, new PropertyPath("(TextBlock.Foreground).(SolidColorBrush.Color)")); | |
| 332 | 删除: | |
| 333 | 删除: //oldFontColorAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.3)); | |
| 334 | 删除: | |
| 335 | 删除: //storyboard.Children.Add(fontSizeAnimation); | |
| 336 | 删除: //storyboard.Children.Add(oldFontColorAnimation); | |
| 337 | 247 | } |
| 338 | 248 | } |
| 339 | 249 | |
| 340 | 删除: //storyboard.Begin(); | |
| 341 | 250 | } |
| 342 | 251 | } |
| 343 | 252 | } |
| @@ -13,6 +13,7 @@ | ||
| 13 | 13 | <Setter.Value> |
| 14 | 14 | <ControlTemplate TargetType="{x:Type local:NavigationItem}"> |
| 15 | 15 | <Border Background="Transparent" CornerRadius="5" x:Name="Border"> |
| 16 | 新增: | |
| 16 | 17 | <!--<Border.Background> |
| 17 | 18 | <SolidColorBrush Color="{TemplateBinding Background}" Opacity="1"/> |
| 18 | 19 | </Border.Background>--> |
| @@ -115,10 +116,18 @@ | ||
| 115 | 116 | Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" Storyboard.TargetName="Border" To="#CC383838" /> |
| 116 | 117 | <DoubleAnimation Duration="0:0:0.2" |
| 117 | 118 | Storyboard.TargetProperty="(base:Icon.RenderTransform).Children[0].(TranslateTransform.Y)" Storyboard.TargetName="Icon" To="0" /> |
| 118 | 删除: <DoubleAnimation Duration="0:0:0.2" | |
| 119 | 删除: Storyboard.TargetProperty="(base:Icon.RenderTransform).Children[1].(ScaleTransform.ScaleX)" Storyboard.TargetName="Icon" To="1" /> | |
| 120 | 删除: <DoubleAnimation Duration="0:0:0.2" | |
| 121 | 删除: Storyboard.TargetProperty="(base:Icon.RenderTransform).Children[1].(ScaleTransform.ScaleY)" Storyboard.TargetName="Icon" To="1" /> | |
| 119 | 新增: <DoubleAnimation Duration="0:0:0.38" | |
| 120 | 新增: Storyboard.TargetProperty="(base:Icon.RenderTransform).Children[1].(ScaleTransform.ScaleX)" Storyboard.TargetName="Icon" To="1"> | |
| 121 | 新增: <DoubleAnimation.EasingFunction> | |
| 122 | 新增: <BackEase EasingMode="EaseOut" Amplitude="2"></BackEase> | |
| 123 | 新增: </DoubleAnimation.EasingFunction> | |
| 124 | 新增: </DoubleAnimation> | |
| 125 | 新增: <DoubleAnimation Duration="0:0:0.38" | |
| 126 | 新增: Storyboard.TargetProperty="(base:Icon.RenderTransform).Children[1].(ScaleTransform.ScaleY)" Storyboard.TargetName="Icon" To="1" > | |
| 127 | 新增: <DoubleAnimation.EasingFunction> | |
| 128 | 新增: <BackEase EasingMode="EaseOut" Amplitude="2"></BackEase> | |
| 129 | 新增: </DoubleAnimation.EasingFunction> | |
| 130 | 新增: </DoubleAnimation> | |
| 122 | 131 | </Storyboard> |
| 123 | 132 | </BeginStoryboard> |
| 124 | 133 | </MultiTrigger.EnterActions> |
| @@ -13,6 +13,7 @@ | ||
| 13 | 13 | <Setter.Value> |
| 14 | 14 | <ControlTemplate TargetType="{x:Type local:NavigationItem}"> |
| 15 | 15 | <Border Background="Transparent" CornerRadius="5" x:Name="Border"> |
| 16 | 新增: | |
| 16 | 17 | <!--<Border.Background> |
| 17 | 18 | <SolidColorBrush Color="{TemplateBinding Background}" Opacity="1"/> |
| 18 | 19 | </Border.Background>--> |
| @@ -47,8 +48,8 @@ | ||
| 47 | 48 | </ColorAnimationUsingKeyFrames>--> |
| 48 | 49 | <!--<ColorAnimation Duration="0:0:0.8" |
| 49 | 50 | Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" Storyboard.TargetName="Border" To="#353535" />--> |
| 50 | 删除: | |
| 51 | 删除: | |
| 51 | 新增: | |
| 52 | 新增: | |
| 52 | 53 | </Storyboard> |
| 53 | 54 | </VisualState> |
| 54 | 55 | <VisualState x:Name="Pressed"> |
| @@ -115,10 +116,18 @@ | ||
| 115 | 116 | Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" Storyboard.TargetName="Border" To="#ffffff" /> |
| 116 | 117 | <DoubleAnimation Duration="0:0:0.2" |
| 117 | 118 | Storyboard.TargetProperty="(base:Icon.RenderTransform).Children[0].(TranslateTransform.Y)" Storyboard.TargetName="Icon" To="0" /> |
| 118 | 删除: <DoubleAnimation Duration="0:0:0.2" | |
| 119 | 删除: Storyboard.TargetProperty="(base:Icon.RenderTransform).Children[1].(ScaleTransform.ScaleX)" Storyboard.TargetName="Icon" To="1" /> | |
| 120 | 删除: <DoubleAnimation Duration="0:0:0.2" | |
| 121 | 删除: Storyboard.TargetProperty="(base:Icon.RenderTransform).Children[1].(ScaleTransform.ScaleY)" Storyboard.TargetName="Icon" To="1" /> | |
| 119 | 新增: <DoubleAnimation Duration="0:0:0.38" | |
| 120 | 新增: Storyboard.TargetProperty="(base:Icon.RenderTransform).Children[1].(ScaleTransform.ScaleX)" Storyboard.TargetName="Icon" To="1"> | |
| 121 | 新增: <DoubleAnimation.EasingFunction> | |
| 122 | 新增: <BackEase EasingMode="EaseOut" Amplitude="2"></BackEase> | |
| 123 | 新增: </DoubleAnimation.EasingFunction> | |
| 124 | 新增: </DoubleAnimation> | |
| 125 | 新增: <DoubleAnimation Duration="0:0:0.38" | |
| 126 | 新增: Storyboard.TargetProperty="(base:Icon.RenderTransform).Children[1].(ScaleTransform.ScaleY)" Storyboard.TargetName="Icon" To="1" > | |
| 127 | 新增: <DoubleAnimation.EasingFunction> | |
| 128 | 新增: <BackEase EasingMode="EaseOut" Amplitude="2"></BackEase> | |
| 129 | 新增: </DoubleAnimation.EasingFunction> | |
| 130 | 新增: </DoubleAnimation> | |
| 122 | 131 | </Storyboard> |
| 123 | 132 | </BeginStoryboard> |
| 124 | 133 | </MultiTrigger.EnterActions> |

