跳到主要内容

github/tai

公开

Tai · Windows 软件与网站使用时长统计。上游 Planshit/Tai 的源码镜像,非灵栈原创;MIT 许可。来源:https://github.com/Planshit/Tai 。本次为手动同步,暂不提供安装包。

提交记录
修改UI/Controls/Charts/Charts.cs+200 −209看文件
@@ -91,7 +91,15 @@ namespace UI.Controls.Charts
9191 new PropertyMetadata(null, new PropertyChangedCallback(OnPropertyChanged))
9292 );
9393
94删除:
94新增: public IEnumerable<ChartsDataModel> ListViewBindingData
95新增: {
96新增: get { return (IEnumerable<ChartsDataModel>)GetValue(ListViewBindingDataProperty); }
97新增: set { SetValue(ListViewBindingDataProperty, value); }
98新增: }
99新增: public static readonly DependencyProperty ListViewBindingDataProperty =
100新增: DependencyProperty.Register("ListViewBindingData",
101新增: typeof(IEnumerable<ChartsDataModel>),
102新增: typeof(Charts));
95103 #endregion
96104 #region LoadingPlaceholderCount 加载中时占位显示条数
97105 /// <summary>
@@ -435,7 +443,17 @@ namespace UI.Controls.Charts
435443 typeof(Charts),
436444 new PropertyMetadata((double)0)
437445 );
438删除:
446新增: public double DataMaxValue
447新增: {
448新增: get { return (double)GetValue(DataMaxValueProperty); }
449新增: set { SetValue(DataMaxValueProperty, value); }
450新增: }
451新增: public static readonly DependencyProperty DataMaxValueProperty =
452新增: DependencyProperty.Register("DataMaxValue",
453新增: typeof(double),
454新增: typeof(Charts),
455新增: new PropertyMetadata((double)0)
456新增: );
439457
440458 private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
441459 {
@@ -481,13 +499,12 @@ namespace UI.Controls.Charts
481499 /// <summary>
482500 /// 容器
483501 /// </summary>
484删除: private StackPanel Container;
485删除: private StackPanel NoScrollContainer;
502新增: private StackPanel _typeATempContainer;
486503 private WrapPanel CardContainer;
487504 private Grid MonthContainer;
488删除: private ScrollViewer ScrollViewer;
489505 private Grid ColumnContainer;
490506 private Border RadarContainer;
507新增: private ListView _listView;
491508 /// <summary>
492509 /// 是否在渲染中
493510 /// </summary>
@@ -496,19 +513,6 @@ namespace UI.Controls.Charts
496513 /// 计算最大值
497514 /// </summary>
498515 private double maxValue = 0;
499删除: /// <summary>
500删除: /// 是否启用懒加载
501删除: /// </summary>
502删除: private bool isLazyloading = false;
503删除: /// <summary>
504删除: /// 项目真实高度
505删除: /// </summary>
506删除: private double itemHeight = 0;
507删除: /// <summary>
508删除: /// 懒加载完成条数
509删除: /// </summary>
510删除: private int lazyloadedCount = 0;
511删除: private List<ChartsDataModel> lazyloadingData;
512516
513517 /// <summary>
514518 /// 搜索关键字(仅列表样式有效
@@ -518,48 +522,37 @@ namespace UI.Controls.Charts
518522 {
519523 DefaultStyleKey = typeof(Charts);
520524
525新增:
521526 SizeChanged += Charts_SizeChanged;
522527 Unloaded += Charts_Unloaded;
523528 }
524529 protected override void OnRender(DrawingContext drawingContext)
525530 {
526531 base.OnRender(drawingContext);
527删除: ScrollViewer.Height = 1;
532新增: _listView.Height = 1;
533新增:
528534 }
529535 private void Charts_SizeChanged(object sender, SizeChangedEventArgs e)
530536 {
531删除: if (ChartsType == ChartsType.HorizontalA)
532删除: {
533删除: var header = GetTemplateChild("AHeader") as Grid;
534删除: var h = ActualHeight - header.ActualHeight;
535删除:
536删除: ScrollViewer.Height = h;
537删除: }
537新增: UpdateListViewHeight();
538538 }
539539
540540 private void Charts_Unloaded(object sender, RoutedEventArgs e)
541541 {
542542 Unloaded -= Charts_Unloaded;
543删除: if (Container != null)
544删除: {
545删除: Container.SizeChanged -= Container_SizeChanged;
546删除: }
547删除: if (ScrollViewer != null)
548删除: {
549删除: ScrollViewer.ScrollChanged -= ScrollViewer_ScrollChanged;
550删除: }
551543 }
552544
553545 public override void OnApplyTemplate()
554546 {
555547 base.OnApplyTemplate();
556删除: Container = GetTemplateChild("Container") as StackPanel;
557548 CardContainer = GetTemplateChild("CardContainer") as WrapPanel;
558549 MonthContainer = GetTemplateChild("MonthContainer") as Grid;
559删除: ScrollViewer = GetTemplateChild("ScrollViewer") as ScrollViewer;
560删除: NoScrollContainer = GetTemplateChild("NoScrollContainer") as StackPanel;
561550 ColumnContainer = GetTemplateChild("ColumnContainer") as Grid;
562551 RadarContainer = GetTemplateChild("Radar") as Border;
552新增: _listView = GetTemplateChild("ListView") as ListView;
553新增: _typeATempContainer = GetTemplateChild("TypeATempContainer") as StackPanel;
554新增:
555新增: UpdateListViewHeight();
563556
564557 if (IsLoading)
565558 {
@@ -569,18 +562,28 @@ namespace UI.Controls.Charts
569562 {
570563 Render();
571564 }
565新增:
566新增: var parent = VisualTreeHelper.GetParent(this);
567新增: while (!(parent is System.Windows.Window))
568新增: {
569新增: parent = VisualTreeHelper.GetParent(parent);
570新增: }
571新增: var page = parent as System.Windows.Window;
572新增: page.SizeChanged += Page_SizeChanged;
573新增: }
574新增:
575新增: private void Page_SizeChanged(object sender, SizeChangedEventArgs e)
576新增: {
577新增: _listView.Height = 1;
572578 }
573579
574580 private void RenderLoadingPlaceholder()
575581 {
576删除: if (Container != null && LoadingPlaceholderCount > 0)
582新增: if (LoadingPlaceholderCount > 0 && CardContainer != null)
577583 {
578删除: Container.Children.Clear();
579584 CardContainer.Children.Clear();
580删除: if (!IsCanScroll)
581删除: {
582删除: NoScrollContainer.Visibility = Visibility.Visible;
583删除: }
585新增: _typeATempContainer.Children.Clear();
586新增:
584587 for (int i = 0; i < LoadingPlaceholderCount; i++)
585588 {
586589 switch (ChartsType)
@@ -588,14 +591,7 @@ namespace UI.Controls.Charts
588591 case ChartsType.HorizontalA:
589592 var item = new ChartsItemTypeA();
590593 item.IsLoading = true;
591删除: if (IsCanScroll)
592删除: {
593删除: Container.Children.Add(item);
594删除: }
595删除: else
596删除: {
597删除: NoScrollContainer.Children.Add(item);
598删除: }
594新增: _typeATempContainer.Children.Add(item);
599595 break;
600596 case ChartsType.Card:
601597 var card = new ChartsItemTypeCard();
@@ -630,39 +626,34 @@ namespace UI.Controls.Charts
630626 var countText = GetTemplateChild("ACount") as Run;
631627 countText.Text = Data.Count().ToString();
632628 }
629新增:
630新增: DataMaxValue = maxValue;
631新增:
632新增:
633633 }
634634
635635 private void Render()
636636 {
637删除: if (isRendering || Container == null || CardContainer == null || ColumnContainer == null)
637新增: if (isRendering || CardContainer == null || ColumnContainer == null)
638638 {
639639 return;
640640 }
641641
642删除: if (IsCanScroll)
643删除: {
644删除: ScrollViewer.Visibility = Visibility.Visible;
645删除: NoScrollContainer.Visibility = Visibility.Collapsed;
646删除: }
647删除: else
648删除: {
649删除: ScrollViewer.Visibility = Visibility.Collapsed;
650删除: NoScrollContainer.Visibility = Visibility.Visible;
651删除: }
642新增:
652643 Calculate();
653删除: Container.Children.Clear();
654644 CardContainer.Children.Clear();
655645 MonthContainer.Children.Clear();
656删除: NoScrollContainer.Children.Clear();
657646 ColumnContainer.Children.Clear();
647新增: _typeATempContainer.Children.Clear();
648新增:
658649 RadarContainer.Child = null;
650新增: ListViewBindingData = null;
659651
660652 if (Data == null || Data.Count() <= 0)
661653 {
662删除: Container.Children.Add(new EmptyData());
663删除: NoScrollContainer.Children.Add(new EmptyData());
664654 CardContainer.Children.Add(new EmptyData());
665655 RadarContainer.Child = new EmptyData();
656新增: _typeATempContainer.Children.Add(new EmptyData());
666657
667658 IsEmpty = true;
668659 return;
@@ -671,7 +662,11 @@ namespace UI.Controls.Charts
671662 {
672663 IsEmpty = false;
673664 }
674删除:
665新增: ListViewBindingData = Data.OrderByDescending(x => x.Value).ToList();
666新增: if (ShowLimit > 0)
667新增: {
668新增: ListViewBindingData = ListViewBindingData.Take(ShowLimit);
669新增: }
675670 isRendering = true;
676671 switch (ChartsType)
677672 {
@@ -695,184 +690,180 @@ namespace UI.Controls.Charts
695690 }
696691
697692 #region 渲染横向样式A
698删除: private void RenderHorizontalAStyle()
693新增: private void UpdateListViewHeight()
699694 {
700删除: lazyloadingData = null;
701删除: isLazyloading = false;
702删除: lazyloadedCount = 0;
703删除:
704删除: ScrollViewer.ScrollToVerticalOffset(0);
705删除:
706删除: var data = Data.OrderByDescending(x => x.Value).ToList();
707删除:
708删除:
709删除: //if (data.Count < 20)
710删除: //{
711删除: // RenderTypeAItems(data, 0, data.Count);
712删除: //}
713删除: //else
714删除: //{
715删除: // isLazyloading = true;
716删除: // RenderTypeAItems(data, 0, 20);
717删除: // lazyloadingData = data;
718删除: // ScrollViewer.ScrollChanged += ScrollViewer_ScrollChanged;
719删除: //}
720删除: RenderTypeAItems(data, 0, data.Count);
721删除:
722删除: //Debug.WriteLine("【渲染】" + sw.ElapsedMilliseconds);
723删除: if (IsCanScroll)
695新增: if (ChartsType == ChartsType.HorizontalA)
724696 {
725删除: Container.SizeChanged -= Container_SizeChanged;
726删除: Container.SizeChanged += Container_SizeChanged;
727删除: }
697新增: var header = GetTemplateChild("AHeader") as Grid;
698新增: var h = ActualHeight - header.ActualHeight;
728699
700新增: _listView.Height = h;
701新增: }
702新增: }
703新增: private void RenderHorizontalAStyle()
704新增: {
729705 isRendering = false;
730删除:
731706 var searchBox = GetTemplateChild("ASearchBox") as InputBox;
732707 searchBox.TextChanged += SearchBox_TextChanged;
733删除: }
734708
735删除: private void SearchBox_TextChanged(object sender, TextChangedEventArgs e)
736删除: {
737删除: var box = sender as InputBox;
738删除: if (box.Text != searchKey)
709新增: _listView.MouseLeftButtonUp += _listView_MouseLeftButtonUp;
710新增: _listView.MouseRightButtonUp += _listView_MouseRightButtonUp;
711新增:
712新增: if (!IsCanScroll)
739713 {
740删除: searchKey = box.Text.ToLower();
741删除: HandleSearch();
714新增: _listView.PreviewMouseWheel += _listView_PreviewMouseWheel;
742715 }
743716 }
744717
745删除: private void HandleSearch()
718新增: private void _listView_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
746719 {
747删除: Task.Run(() =>
720新增: if (!e.Handled)
748721 {
749删除: Dispatcher.Invoke(() =>
750删除: {
751删除: foreach (var item in Container.Children)
752删除: {
753删除: var control = item as ChartsItemTypeA;
754删除: if (control != null)
755删除: {
756删除: var data = control.Data;
757删除:
758删除: var log = data.Data as DailyLogModel;
759删除: var app = log != null ? log.AppModel : null;
760删除:
761删除: if (log == null)
762删除: {
763删除: app = (data.Data as HoursLogModel).AppModel;
764删除: }
765删除:
766删除: bool show = false;
767删除: if (app != null)
768删除: {
769删除: string description = app.Description != null ? app.Description.ToLower() : string.Empty;
770删除:
771删除: show = string.IsNullOrEmpty(searchKey) || app.Name.ToLower().Contains(searchKey) || app.File.ToLower().Contains(searchKey) || description.Contains(searchKey);
772删除: }
773删除: if (!show && app.Category != null)
774删除: {
775删除: show = app.Category.Name.Contains(searchKey);
776删除: }
777删除: if (!show && searchKey == "忽略")
778删除: {
779删除: show = data.BadgeList.Where(m => m.Type == ChartBadgeType.Ignore).Any();
780删除: }
781删除: control.Visibility = show ? Visibility.Visible : Visibility.Collapsed;
782删除: }
783删除: }
784删除: });
722新增: e.Handled = true;
785723
786删除: });
724新增: var eventArg = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta);
725新增: eventArg.RoutedEvent = UIElement.MouseWheelEvent;
726新增: eventArg.Source = sender;
727新增:
728新增: var parent = ((Control)sender).Parent as UIElement;
729新增: parent.RaiseEvent(eventArg);
730新增: }
787731 }
788732
789删除: private void Container_SizeChanged(object sender, SizeChangedEventArgs e)
733新增: private void _listView_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
790734 {
791删除: foreach (var item in Container.Children)
735新增: if (_listView.SelectedItem != null)
792736 {
793删除: var control = item as ChartsItemTypeA;
794删除: if (control != null)
737新增: if (ItemMenu != null)
795738 {
796删除: control.UpdateValueBlockWidth();
739新增: ItemMenu.IsOpen = true;
740新增: ItemMenu.Tag = _listView.SelectedItem;
797741 }
798742 }
799743 }
800744
801删除: private void ScrollViewer_ScrollChanged(object sender, ScrollChangedEventArgs e)
745新增: private void _listView_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
802746 {
803删除: if (ScrollViewer.VerticalOffset > 0 && e.VerticalChange > 0)
747新增: if (_listView.SelectedItem != null)
804748 {
805删除: double a = ScrollViewer.VerticalOffset * itemHeight;
806删除: double b = itemHeight * lazyloadedCount;
807删除: if (b - a <= ScrollViewer.ActualHeight)
808删除: {
809删除: RenderTypeAItems(lazyloadingData, lazyloadedCount, 20);
810删除: }
749新增: OnItemClick?.Invoke(_listView.SelectedItem, null);
750新增: ClickCommand?.Execute(_listView.SelectedItem);
811751 }
752新增: }
812753
813删除: if (lazyloadedCount == Data.Count())
754新增:
755新增: private void SearchBox_TextChanged(object sender, TextChangedEventArgs e)
756新增: {
757新增: var box = sender as InputBox;
758新增: if (box.Text != searchKey)
814759 {
815删除: ScrollViewer.ScrollChanged -= ScrollViewer_ScrollChanged;
760新增: searchKey = box.Text.ToLower();
761新增: HandleSearch();
816762 }
817763 }
818764
819删除: private void RenderTypeAItems(List<ChartsDataModel> data, int start, int count)
765新增: private void HandleSearch()
820766 {
821删除: StackPanel container = Container;
822删除: if (!IsCanScroll)
823删除: {
824删除: container = NoScrollContainer;
825删除: }
826删除: for (int i = start; i < start + count; i++)
767新增: Task.Run(() =>
827768 {
828删除:
829删除: if (i >= data.Count)
769新增: Dispatcher.Invoke(() =>
830770 {
831删除: break;
832删除: }
833删除: ChartsDataModel item = data[i];
834删除: var chartsItem = new ChartsItemTypeA();
835删除: chartsItem.Data = item;
836删除: chartsItem.ToolTip = item.PopupText;
837删除: chartsItem.MaxValue = maxValue;
838删除: chartsItem.IsShowBadge = IsShowBadge;
771新增: var newListData = new List<ChartsDataModel>();
839772
840删除: if (i == 19 && isLazyloading)
841删除: {
842删除: chartsItem.Loaded += ChartsItem_Loaded;
843删除: }
844删除: // 处理点击事件
845删除: HandleItemClick(chartsItem, item);
846删除: //container.Children.Insert(lazyloadedCount, chartsItem);
847删除: container.Children.Add(chartsItem);
848删除: if (ShowLimit > 0 && container.Children.Count == ShowLimit)
849删除: {
850删除: break;
851删除: }
852删除: //lazyloadedCount++;
853删除: //if (i >= 20)
854删除: //{
855删除: // container.Children.RemoveAt(Container.Children.Count - 1);
856删除: //}
857删除: }
858773
859删除: }
860774
861删除: private void ChartsItem_Loaded(object sender, RoutedEventArgs e)
862删除: {
863删除: var chartsItem = (ChartsItemTypeA)sender;
864删除: chartsItem.Loaded -= ChartsItem_Loaded;
775新增: foreach (var data in Data)
776新增: {
777新增: var log = data.Data as DailyLogModel;
778新增: var app = log != null ? log.AppModel : null;
865779
866删除: int count = Data.Count() - 20;
867删除: for (int i = 0; i < count; i++)
868删除: {
869删除: var pl = new TextBlock();
870删除: pl.Height = chartsItem.ActualHeight;
871删除: Container.Children.Add(pl);
872删除: }
780新增: if (log == null)
781新增: {
782新增: app = (data.Data as HoursLogModel).AppModel;
783新增: }
873784
874删除: itemHeight = chartsItem.ActualHeight;
785新增: bool show = false;
786新增: if (app != null)
787新增: {
788新增: string description = app.Description != null ? app.Description.ToLower() : string.Empty;
789新增:
790新增: show = string.IsNullOrEmpty(searchKey) || app.Name.ToLower().Contains(searchKey) || app.File.ToLower().Contains(searchKey) || description.Contains(searchKey);
791新增: }
792新增: if (!show && app.Category != null)
793新增: {
794新增: show = app.Category.Name.Contains(searchKey);
795新增: }
796新增: if (!show && searchKey == "忽略")
797新增: {
798新增: show = data.BadgeList.Where(m => m.Type == ChartBadgeType.Ignore).Any();
799新增: }
800新增: if (show)
801新增: {
802新增: newListData.Add(data);
803新增: }
804新增: }
805新增:
806新增: ListViewBindingData = newListData;
807新增: });
808新增:
809新增: });
875810 }
811新增:
812新增:
813新增: //private void RenderTypeAItems(List<ChartsDataModel> data, int start, int count)
814新增: //{
815新增:
816新增: // for (int i = start; i < start + count; i++)
817新增: // {
818新增:
819新增: // if (i >= data.Count)
820新增: // {
821新增: // break;
822新增: // }
823新增: // ChartsDataModel item = data[i];
824新增: // var chartsItem = new ChartsItemTypeA();
825新增: // chartsItem.Data = item;
826新增: // chartsItem.ToolTip = item.PopupText;
827新增: // chartsItem.MaxValue = maxValue;
828新增: // chartsItem.IsShowBadge = IsShowBadge;
829新增:
830新增: // if (i == 19 && isLazyloading)
831新增: // {
832新增: // chartsItem.Loaded += ChartsItem_Loaded;
833新增: // }
834新增: // // 处理点击事件
835新增: // HandleItemClick(chartsItem, item);
836新增: // if (!IsCanScroll)
837新增: // {
838新增: // NoScrollContainer.Children.Add(chartsItem);
839新增: // }
840新增: // else
841新增: // {
842新增: // Container.Children.Add(chartsItem);
843新增: // }
844新增: // if (ShowLimit > 0 && i == ShowLimit - 1)
845新增: // {
846新增: // break;
847新增: // }
848新增:
849新增: // }
850新增:
851新增: //}
852新增:
853新增: //private void ChartsItem_Loaded(object sender, RoutedEventArgs e)
854新增: //{
855新增: // var chartsItem = (ChartsItemTypeA)sender;
856新增: // chartsItem.Loaded -= ChartsItem_Loaded;
857新增:
858新增: // int count = Data.Count() - 20;
859新增: // for (int i = 0; i < count; i++)
860新增: // {
861新增: // var pl = new TextBlock();
862新增: // pl.Height = chartsItem.ActualHeight;
863新增: // }
864新增:
865新增: // itemHeight = chartsItem.ActualHeight;
866新增: //}
876867 #endregion
877868 #region 渲染卡片样式Card
878869 private void RenderCardStyle()
@@ -979,10 +970,10 @@ namespace UI.Controls.Charts
979970 Grid.SetColumn(chartsItem, location[0]);
980971 Grid.SetRow(chartsItem, location[1]);
981972 dataGrid.Children.Add(chartsItem);
982删除: if (ShowLimit > 0 && Container.Children.Count == ShowLimit)
983删除: {
984删除: break;
985删除: }
973新增: //if (ShowLimit > 0 && Container.Children.Count == ShowLimit)
974新增: //{
975新增: // break;
976新增: //}
986977 }
987978 }
988979
修改UI/Controls/Charts/ChartsItemTypeA.cs+9 −1看文件
@@ -123,6 +123,14 @@ namespace UI.Controls.Charts
123123 Loaded += ChartsItemTypeA_Loaded;
124124 IsAddEvent = true;
125125 }
126新增:
127新增: var parent = Parent as FrameworkElement;
128新增: parent.SizeChanged += Parent_SizeChanged;
129新增: }
130新增:
131新增: private void Parent_SizeChanged(object sender, SizeChangedEventArgs e)
132新增: {
133新增: UpdateValueBlockWidth();
126134 }
127135
128136 private void ChartsItemTypeA_Loaded(object sender, RoutedEventArgs e)
@@ -160,7 +168,7 @@ namespace UI.Controls.Charts
160168
161169 public void UpdateValueBlockWidth()
162170 {
163删除: if (Data == null)
171新增: if (Data == null || !IsLoaded)
164172 {
165173 return;
166174 }
修改UI/Controls/Charts/Model/ChartsDataModel.cs+5 −0看文件
@@ -63,5 +63,10 @@ namespace UI.Controls.Charts.Model
6363 /// 徽章
6464 /// </summary>
6565 public List<ChartBadgeModel> BadgeList { get { return BadgeList_; } set { BadgeList_ = value; OnPropertyChanged(); } }
66新增:
67新增: /// <summary>
68新增: /// 最大值
69新增: /// </summary>
70新增: public double MaxValue { get; set; }
6671 }
6772}
修改UI/Resources/Themes/Dark/Charts/Charts.xaml+59 −5看文件
@@ -33,11 +33,49 @@
3333 </TextBlock>
3434 <input:InputBox x:Name="ASearchBox" Grid.Row="1" Placeholder="搜索" Margin="0,10,0,10"/>
3535 </Grid>
36删除: <ScrollViewer Height="1" Grid.Row="1" Visibility="Collapsed" x:Name="ScrollViewer" VerticalScrollBarVisibility="Auto" CanContentScroll="False" >
37删除: <StackPanel x:Name="Container">
38删除: </StackPanel>
39删除: </ScrollViewer>
40删除: <StackPanel Grid.Row="1" Visibility="Collapsed" x:Name="NoScrollContainer"></StackPanel>
36新增: <StackPanel x:Name="TypeATempContainer" Grid.Row="1" Visibility="Collapsed"/>
37新增: <!--list-->
38新增: <ListView x:Name="ListView" Height="1" ScrollViewer.VerticalScrollBarVisibility="Visible" Grid.Row="1" ItemsSource="{TemplateBinding ListViewBindingData}" VirtualizingPanel.IsVirtualizing="True" >
39新增: <ListBox.Resources>
40新增: <Style TargetType="{x:Type ListView}">
41新增: <Setter Property="OverridesDefaultStyle" Value="True"/>
42新增:
43新增: <Setter Property="Template">
44新增: <Setter.Value>
45新增: <ControlTemplate TargetType="{x:Type ListView}">
46新增: <ScrollViewer VerticalScrollBarVisibility="Auto" CanContentScroll="True">
47新增: <ItemsPresenter />
48新增: </ScrollViewer>
49新增: </ControlTemplate>
50新增: </Setter.Value>
51新增: </Setter>
52新增: </Style>
53新增: <Style TargetType="{x:Type ListViewItem}">
54新增: <Setter Property="OverridesDefaultStyle" Value="True"/>
55新增: <Setter Property="Template">
56新增: <Setter.Value>
57新增: <ControlTemplate TargetType="{x:Type ListViewItem}">
58新增: <ContentPresenter/>
59新增: </ControlTemplate>
60新增: </Setter.Value>
61新增: </Setter>
62新增:
63新增: </Style>
64新增: </ListBox.Resources>
65新增: <ListBox.ItemsPanel>
66新增: <ItemsPanelTemplate>
67新增: <VirtualizingStackPanel/>
68新增: </ItemsPanelTemplate>
69新增: </ListBox.ItemsPanel>
70新增: <ListView.ItemTemplate>
71新增: <DataTemplate>
72新增: <VirtualizingStackPanel>
73新增: <local:ChartsItemTypeA Data="{Binding}" MaxValue="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:Charts}}, Path=DataMaxValue}" IsShowBadge="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:Charts}}, Path=IsShowBadge}"/>
74新增: </VirtualizingStackPanel>
75新增: </DataTemplate>
76新增: </ListView.ItemTemplate>
77新增: </ListView>
78新增: <!--end-->
4179 </Grid>
4280 <WrapPanel x:Name="CardContainer" Visibility="Collapsed">
4381 </WrapPanel>
@@ -286,6 +324,22 @@
286324 Value="Radar">
287325 <Setter TargetName="Radar" Property="Visibility" Value="Visible"/>
288326 </Trigger>
327新增: <MultiTrigger>
328新增: <MultiTrigger.Conditions>
329新增: <Condition Property="IsLoading" Value="True"/>
330新增: <Condition Property="ChartsType" Value="HorizontalA"/>
331新增: </MultiTrigger.Conditions>
332新增: <Setter Property="Visibility" Value="Visible" TargetName="TypeATempContainer"/>
333新增: <Setter Property="Visibility" Value="Collapsed" TargetName="ListView"/>
334新增: </MultiTrigger>
335新增: <MultiTrigger>
336新增: <MultiTrigger.Conditions>
337新增: <Condition Property="IsEmpty" Value="True"/>
338新增: <Condition Property="ChartsType" Value="HorizontalA"/>
339新增: </MultiTrigger.Conditions>
340新增: <Setter Property="Visibility" Value="Visible" TargetName="TypeATempContainer"/>
341新增: <Setter Property="Visibility" Value="Collapsed" TargetName="ListView"/>
342新增: </MultiTrigger>
289343 </ControlTemplate.Triggers>
290344 </ControlTemplate>
291345 </Setter.Value>
修改UI/Resources/Themes/Light/Charts/Charts.xaml+60 −5看文件
@@ -33,11 +33,50 @@
3333 </TextBlock>
3434 <input:InputBox x:Name="ASearchBox" Grid.Row="1" Placeholder="搜索" Margin="0,10,0,10"/>
3535 </Grid>
36删除: <ScrollViewer Height="1" Grid.Row="1" Visibility="Collapsed" x:Name="ScrollViewer" VerticalScrollBarVisibility="Auto" CanContentScroll="False" >
37删除: <StackPanel x:Name="Container">
38删除: </StackPanel>
39删除: </ScrollViewer>
40删除: <StackPanel Grid.Row="1" Visibility="Collapsed" x:Name="NoScrollContainer"></StackPanel>
36新增: <StackPanel x:Name="TypeATempContainer" Grid.Row="1" Visibility="Collapsed"/>
37新增: <!--list-->
38新增: <ListView x:Name="ListView" Height="1" Grid.Row="1" ItemsSource="{TemplateBinding ListViewBindingData}" VirtualizingPanel.IsVirtualizing="True" >
39新增: <ListBox.Resources>
40新增: <Style TargetType="{x:Type ListView}">
41新增: <Setter Property="OverridesDefaultStyle" Value="True"/>
42新增:
43新增: <Setter Property="Template">
44新增: <Setter.Value>
45新增: <ControlTemplate TargetType="{x:Type ListView}">
46新增: <ScrollViewer VerticalScrollBarVisibility="Auto" CanContentScroll="True">
47新增: <ItemsPresenter />
48新增: </ScrollViewer>
49新增: </ControlTemplate>
50新增: </Setter.Value>
51新增: </Setter>
52新增: </Style>
53新增: <Style TargetType="{x:Type ListViewItem}">
54新增: <Setter Property="OverridesDefaultStyle" Value="True"/>
55新增: <Setter Property="Template">
56新增: <Setter.Value>
57新增: <ControlTemplate TargetType="{x:Type ListViewItem}">
58新增: <ContentPresenter/>
59新增: </ControlTemplate>
60新增: </Setter.Value>
61新增: </Setter>
62新增:
63新增: </Style>
64新增: </ListBox.Resources>
65新增: <ListBox.ItemsPanel>
66新增: <ItemsPanelTemplate>
67新增: <VirtualizingStackPanel/>
68新增: </ItemsPanelTemplate>
69新增: </ListBox.ItemsPanel>
70新增: <ListView.ItemTemplate>
71新增: <DataTemplate>
72新增: <VirtualizingStackPanel>
73新增: <local:ChartsItemTypeA Data="{Binding}" MaxValue="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:Charts}}, Path=DataMaxValue}" IsShowBadge="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:Charts}}, Path=IsShowBadge}"/>
74新增: </VirtualizingStackPanel>
75新增: </DataTemplate>
76新增: </ListView.ItemTemplate>
77新增: </ListView>
78新增: <!--end-->
79新增: <!--<StackPanel Grid.Row="1" Visibility="Collapsed" x:Name="NoScrollContainer"></StackPanel>-->
4180 </Grid>
4281 <WrapPanel x:Name="CardContainer" Visibility="Collapsed">
4382 </WrapPanel>
@@ -286,6 +325,22 @@
286325 Value="Radar">
287326 <Setter TargetName="Radar" Property="Visibility" Value="Visible"/>
288327 </Trigger>
328新增: <MultiTrigger>
329新增: <MultiTrigger.Conditions>
330新增: <Condition Property="IsLoading" Value="True"/>
331新增: <Condition Property="ChartsType" Value="HorizontalA"/>
332新增: </MultiTrigger.Conditions>
333新增: <Setter Property="Visibility" Value="Visible" TargetName="TypeATempContainer"/>
334新增: <Setter Property="Visibility" Value="Collapsed" TargetName="ListView"/>
335新增: </MultiTrigger>
336新增: <MultiTrigger>
337新增: <MultiTrigger.Conditions>
338新增: <Condition Property="IsEmpty" Value="True"/>
339新增: <Condition Property="ChartsType" Value="HorizontalA"/>
340新增: </MultiTrigger.Conditions>
341新增: <Setter Property="Visibility" Value="Visible" TargetName="TypeATempContainer"/>
342新增: <Setter Property="Visibility" Value="Collapsed" TargetName="ListView"/>
343新增: </MultiTrigger>
289344 </ControlTemplate.Triggers>
290345 </ControlTemplate>
291346 </Setter.Value>