跳到主要内容

github/tai

公开

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

提交记录
修改UI/Controls/Charts/Charts.cs+68 −107看文件
@@ -490,6 +490,21 @@ namespace UI.Controls.Charts
490490
491491
492492 #endregion
493新增: #region 图标大小(仅列表样式有效)
494新增: /// <summary>
495新增: /// 图标大小(仅列表样式有效)
496新增: /// </summary>
497新增: public double IconSize
498新增: {
499新增: get { return (double)GetValue(IconSizeProperty); }
500新增: set { SetValue(IconSizeProperty, value); }
501新增: }
502新增: public static readonly DependencyProperty IconSizeProperty =
503新增: DependencyProperty.Register("IconSize",
504新增: typeof(double),
505新增: typeof(Charts),
506新增: new PropertyMetadata((double)25));
507新增: #endregion
493508
494509 private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
495510 {
@@ -534,6 +549,7 @@ namespace UI.Controls.Charts
534549 private Border RadarContainer;
535550 private ListView _listView;
536551 private Canvas _typeColumnCanvas;
552新增: private Canvas _commonCanvas;
537553
538554 private Dictionary<int, List<Rectangle>> _typeColValueRectMap;
539555 private Dictionary<int, Rectangle> _typeColBorderRectMap;
@@ -553,25 +569,6 @@ namespace UI.Controls.Charts
553569 public Charts()
554570 {
555571 DefaultStyleKey = typeof(Charts);
556删除:
557删除:
558删除: SizeChanged += Charts_SizeChanged;
559删除: Unloaded += Charts_Unloaded;
560删除: }
561删除: protected override void OnRender(DrawingContext drawingContext)
562删除: {
563删除: base.OnRender(drawingContext);
564删除: //_listView.Height = 1;
565删除:
566删除: }
567删除: private void Charts_SizeChanged(object sender, SizeChangedEventArgs e)
568删除: {
569删除: UpdateListViewHeight();
570删除: }
571删除:
572删除: private void Charts_Unloaded(object sender, RoutedEventArgs e)
573删除: {
574删除: Unloaded -= Charts_Unloaded;
575572 }
576573
577574 public override void OnApplyTemplate()
@@ -582,39 +579,29 @@ namespace UI.Controls.Charts
582579 RadarContainer = GetTemplateChild("Radar") as Border;
583580 _listView = GetTemplateChild("ListView") as ListView;
584581 _typeATempContainer = GetTemplateChild("TypeATempContainer") as StackPanel;
582新增: _commonCanvas = GetTemplateChild("CommonCanvasContainer") as Canvas;
583新增:
585584 if (ChartsType == ChartsType.Column)
586585 {
587586 _typeColumnCanvas = GetTemplateChild("TypeColumnCanvas") as Canvas;
588587 _typeColumnCanvas.SizeChanged += _typeColumnCanvas_SizeChanged;
589588 }
590删除:
591删除: UpdateListViewHeight();
592删除:
593删除: Render();
594删除:
595删除: if (ChartsType == ChartsType.HorizontalA && IsSearch)
589新增: if (ChartsType == ChartsType.Pie)
596590 {
597删除: var parent = VisualTreeHelper.GetParent(this);
598删除: while (!(parent is System.Windows.Window))
599删除: {
600删除: parent = VisualTreeHelper.GetParent(parent);
601删除: }
602删除: var page = parent as System.Windows.Window;
603删除: page.SizeChanged += Page_SizeChanged;
591新增: _commonCanvas.SizeChanged += _commonCanvas_SizeChanged;
604592 }
593新增: Render();
605594 }
606595
607删除: private void _typeColumnCanvas_SizeChanged(object sender, SizeChangedEventArgs e)
596新增:
597新增: private void _commonCanvas_SizeChanged(object sender, SizeChangedEventArgs e)
608598 {
609删除: RenderColumnStyle();
599新增: RenderPieStyle();
610600 }
611601
612删除: private void Page_SizeChanged(object sender, SizeChangedEventArgs e)
602新增: private void _typeColumnCanvas_SizeChanged(object sender, SizeChangedEventArgs e)
613603 {
614删除: if (double.IsNaN(Height))
615删除: {
616删除: _listView.Height = 1;
617删除: }
604新增: RenderColumnStyle();
618605 }
619606
620607 private void Render()
@@ -639,8 +626,8 @@ namespace UI.Controls.Charts
639626 {
640627 switch (ChartsType)
641628 {
642删除: case ChartsType.HorizontalA:
643删除: var item = new ChartsItemTypeA();
629新增: case ChartsType.List:
630新增: var item = new ChartsItemTypeList();
644631 item.IsLoading = true;
645632 _typeATempContainer.Children.Add(item);
646633 break;
@@ -664,7 +651,7 @@ namespace UI.Controls.Charts
664651 // 如果设置了固定的最大值则使用,否则查找数据中的最大值
665652 maxValue = MaxValueLimit > 0 ? MaxValueLimit : Data.Count() > 0 ? Data.Max(m => m.Value) : 0;
666653
667删除: if (ChartsType == ChartsType.HorizontalA)
654新增: if (ChartsType == ChartsType.List)
668655 {
669656 //不允许最大值小于10,否则效果不好看
670657 if (maxValue < 10)
@@ -698,6 +685,7 @@ namespace UI.Controls.Charts
698685 CardContainer.Children.Clear();
699686 MonthContainer.Children.Clear();
700687 _typeATempContainer.Children.Clear();
688新增: _commonCanvas.Children.Clear();
701689
702690 RadarContainer.Child = null;
703691 ListViewBindingData = null;
@@ -707,6 +695,7 @@ namespace UI.Controls.Charts
707695 CardContainer.Children.Add(new EmptyData());
708696 RadarContainer.Child = new EmptyData();
709697 _typeATempContainer.Children.Add(new EmptyData());
698新增: _commonCanvas.Children.Add(new EmptyData());
710699
711700 IsEmpty = true;
712701 return;
@@ -719,8 +708,8 @@ namespace UI.Controls.Charts
719708 isRendering = true;
720709 switch (ChartsType)
721710 {
722删除: case ChartsType.HorizontalA:
723删除: RenderHorizontalAStyle();
711新增: case ChartsType.List:
712新增: RenderListStyle();
724713 break;
725714 case ChartsType.Card:
726715 RenderCardStyle();
@@ -734,52 +723,15 @@ namespace UI.Controls.Charts
734723 case ChartsType.Radar:
735724 RenderLadarStyle();
736725 break;
726新增: case ChartsType.Pie:
727新增: RenderPieStyle();
728新增: break;
737729 }
738730
739731 }
740732
741删除: #region 渲染横向样式A
742删除: private void UpdateListViewHeight()
743删除: {
744删除: if (ChartsType == ChartsType.HorizontalA)
745删除: {
746删除: var header = GetTemplateChild("AHeader") as Grid;
747删除: var h = ActualHeight - header.ActualHeight;
748删除:
749删除: _listView.Height = h;
750删除:
751删除: if (!IsCanScroll && double.IsNaN(Height))
752删除: {
753删除: // 显示全部内容
754删除: var item = GetChild<ChartsItemTypeA>(this) as ChartsItemTypeA;
755删除: if (item != null)
756删除: {
757删除: double height = item.ActualHeight + item.Margin.Top + item.Margin.Bottom;
758删除:
759删除: _listView.Height = height * _listView.Items.Count;
760删除: }
761删除: }
762删除: }
763删除: }
764删除: private DependencyObject GetChild<T>(DependencyObject e) where T : DependencyObject
765删除: {
766删除: if (e == null)
767删除: {
768删除: return e;
769删除: }
770删除: for (int i = 0; i < VisualTreeHelper.GetChildrenCount(e); i++)
771删除: {
772删除: var c = VisualTreeHelper.GetChild(e, i);
773删除:
774删除: var result = c as T ?? GetChild<T>(c);
775删除: if (result != null)
776删除: {
777删除: return result;
778删除: }
779删除: }
780删除: return null;
781删除: }
782删除: private void RenderHorizontalAStyle()
733新增: #region 渲染列表样式
734新增: private void RenderListStyle()
783735 {
784736 ListViewBindingData = Data.OrderByDescending(x => x.Value).ToList();
785737 if (ShowLimit > 0)
@@ -858,33 +810,21 @@ namespace UI.Controls.Charts
858810 {
859811 var newListData = new List<ChartsDataModel>();
860812
861删除:
862删除:
863813 foreach (var data in Data)
864814 {
865删除: var log = data.Data as DailyLogModel;
866删除: var app = log != null ? log.AppModel : null;
815新增: string content = (data.Name + data.PopupText).ToLower();
816新增: bool show = content.IndexOf(searchKey) != -1;
867817
868删除: if (log == null)
818新增: if (!show)
869819 {
870删除: app = (data.Data as HoursLogModel).AppModel;
820新增: show = searchKey == "忽略" && data.BadgeList.Where(m => m.Type == ChartBadgeType.Ignore).Any();
821新增: if (data.BadgeList.Any())
822新增: {
823新增: // 搜索徽章名(分类名)
824新增: show = data.BadgeList.Where(m => m.Name.ToLower().Contains(searchKey)).Any();
825新增: }
871826 }
872827
873删除: bool show = false;
874删除: if (app != null)
875删除: {
876删除: string description = app.Description != null ? app.Description.ToLower() : string.Empty;
877删除:
878删除: show = string.IsNullOrEmpty(searchKey) || app.Name.ToLower().Contains(searchKey) || app.File.ToLower().Contains(searchKey) || description.Contains(searchKey);
879删除: }
880删除: if (!show && app.Category != null)
881删除: {
882删除: show = app.Category.Name.Contains(searchKey);
883删除: }
884删除: if (!show && searchKey == "忽略")
885删除: {
886删除: show = data.BadgeList.Where(m => m.Type == ChartBadgeType.Ignore).Any();
887删除: }
888828 if (show)
889829 {
890830 newListData.Add(data);
@@ -1503,6 +1443,27 @@ namespace UI.Controls.Charts
15031443 }
15041444 #endregion
15051445
1446新增: #region 饼图
1447新增: private void RenderPieStyle()
1448新增: {
1449新增: if (_commonCanvas == null)
1450新增: {
1451新增: isRendering = false;
1452新增: return;
1453新增: }
1454新增: _commonCanvas.Children.Clear();
1455新增: var item = new ChartsItemTypePie();
1456新增: item.Width = _commonCanvas.ActualWidth;
1457新增: item.Height = _commonCanvas.ActualHeight;
1458新增: item.HorizontalAlignment = HorizontalAlignment.Left;
1459新增: item.VerticalAlignment = VerticalAlignment.Top;
1460新增: item.Data = Data.OrderBy(m => m.Value).ToList();
1461新增: _commonCanvas.Children.Add(item);
1462新增:
1463新增: isRendering = false;
1464新增: }
1465新增: #endregion
1466新增:
15061467 private string Covervalue(double value)
15071468 {
15081469 if (DataValueType == ChartDataValueType.Seconds)
改名UI/Controls/Charts/ChartsItemTypeA.cs → UI/Controls/Charts/ChartsItemTypeList.cs+30 −13看文件
@@ -19,7 +19,7 @@ using UI.Controls.Charts.Model;
1919
2020namespace UI.Controls.Charts
2121{
22删除: public class ChartsItemTypeA : Control
22新增: public class ChartsItemTypeList : Control
2323 {
2424 #region ChartsType 样式类型
2525 /// <summary>
@@ -33,7 +33,7 @@ namespace UI.Controls.Charts
3333 public static readonly DependencyProperty DataProperty =
3434 DependencyProperty.Register("Data",
3535 typeof(ChartsDataModel),
36删除: typeof(ChartsItemTypeA));
36新增: typeof(ChartsItemTypeList));
3737
3838
3939 #endregion
@@ -50,7 +50,7 @@ namespace UI.Controls.Charts
5050 public static readonly DependencyProperty MaxValueProperty =
5151 DependencyProperty.Register("MaxValue",
5252 typeof(double),
53删除: typeof(ChartsItemTypeA));
53新增: typeof(ChartsItemTypeList));
5454
5555
5656 #endregion
@@ -67,7 +67,7 @@ namespace UI.Controls.Charts
6767 public static readonly DependencyProperty IsLoadingProperty =
6868 DependencyProperty.Register("IsLoading",
6969 typeof(bool),
70删除: typeof(ChartsItemTypeA));
70新增: typeof(ChartsItemTypeList));
7171
7272
7373 #endregion
@@ -84,7 +84,24 @@ namespace UI.Controls.Charts
8484 public static readonly DependencyProperty IsShowBadgeProperty =
8585 DependencyProperty.Register("IsShowBadge",
8686 typeof(bool),
87删除: typeof(ChartsItemTypeA));
87新增: typeof(ChartsItemTypeList));
88新增:
89新增:
90新增: #endregion
91新增:
92新增: #region 图标大小
93新增: /// <summary>
94新增: /// 图标大小
95新增: /// </summary>
96新增: public double IconSize
97新增: {
98新增: get { return (double)GetValue(IconSizeProperty); }
99新增: set { SetValue(IconSizeProperty, value); }
100新增: }
101新增: public static readonly DependencyProperty IconSizeProperty =
102新增: DependencyProperty.Register("IconSize",
103新增: typeof(double),
104新增: typeof(ChartsItemTypeList), new PropertyMetadata((double)25));
88105
89106
90107 #endregion
@@ -95,16 +112,16 @@ namespace UI.Controls.Charts
95112 private Image IconObj;
96113 private bool isRendering = false;
97114 private bool IsAddEvent = false;
98删除: public ChartsItemTypeA()
115新增: public ChartsItemTypeList()
99116 {
100删除: DefaultStyleKey = typeof(ChartsItemTypeA);
101删除: Unloaded += ChartsItemTypeA_Unloaded;
117新增: DefaultStyleKey = typeof(ChartsItemTypeList);
118新增: Unloaded += ChartsItemTypeList_Unloaded;
102119 }
103120
104删除: private void ChartsItemTypeA_Unloaded(object sender, RoutedEventArgs e)
121新增: private void ChartsItemTypeList_Unloaded(object sender, RoutedEventArgs e)
105122 {
106删除: Unloaded -= ChartsItemTypeA_Unloaded;
107删除: Loaded -= ChartsItemTypeA_Loaded;
123新增: Unloaded -= ChartsItemTypeList_Unloaded;
124新增: Loaded -= ChartsItemTypeList_Loaded;
108125 }
109126
110127 public override void OnApplyTemplate()
@@ -120,7 +137,7 @@ namespace UI.Controls.Charts
120137
121138 if (!IsAddEvent)
122139 {
123删除: Loaded += ChartsItemTypeA_Loaded;
140新增: Loaded += ChartsItemTypeList_Loaded;
124141 IsAddEvent = true;
125142 }
126143
@@ -133,7 +150,7 @@ namespace UI.Controls.Charts
133150 UpdateValueBlockWidth();
134151 }
135152
136删除: private void ChartsItemTypeA_Loaded(object sender, RoutedEventArgs e)
153新增: private void ChartsItemTypeList_Loaded(object sender, RoutedEventArgs e)
137154 {
138155 Render();
139156 }
修改UI/Controls/Charts/ChartsType.cs+6 −2看文件
@@ -12,9 +12,9 @@ namespace UI.Controls.Charts
1212 public enum ChartsType
1313 {
1414 /// <summary>
15删除: /// 横向A样式
15新增: /// 列表
1616 /// </summary>
17删除: HorizontalA = 1,
17新增: List = 1,
1818 /// <summary>
1919 /// 卡片
2020 /// </summary>
@@ -31,5 +31,9 @@ namespace UI.Controls.Charts
3131 /// 雷达图
3232 /// </summary>
3333 Radar = 5,
34新增: /// <summary>
35新增: /// 饼图
36新增: /// </summary>
37新增: Pie = 6
3438 }
3539}
修改UI/Themes/Charts/Charts.xaml+16 −9看文件
@@ -16,10 +16,13 @@
1616 <Border x:Name="Radar" Visibility="Collapsed">
1717
1818 </Border>
19删除: <Grid x:Name="HorizontalA" Visibility="Collapsed" >
19新增: <Canvas x:Name="CommonCanvasContainer" Visibility="Collapsed">
20新增:
21新增: </Canvas>
22新增: <Grid x:Name="List" Visibility="Collapsed" >
2023 <Grid.RowDefinitions>
2124 <RowDefinition Height="auto"/>
22删除: <RowDefinition Height="auto"/>
25新增: <RowDefinition Height="*"/>
2326 </Grid.RowDefinitions>
2427 <Grid x:Name="AHeader" Visibility="Collapsed">
2528 <Grid.RowDefinitions>
@@ -35,7 +38,7 @@
3538 </Grid>
3639 <StackPanel x:Name="TypeATempContainer" Grid.Row="1" Visibility="Collapsed"/>
3740 <!--list-->
38删除: <ListView x:Name="ListView" Height="1" Grid.Row="1" ItemsSource="{TemplateBinding ListViewBindingData}" VirtualizingPanel.IsVirtualizing="True" >
41新增: <ListView x:Name="ListView" Grid.Row="1" ItemsSource="{TemplateBinding ListViewBindingData}" VirtualizingPanel.IsVirtualizing="True" >
3942 <ListBox.Resources>
4043 <Style TargetType="{x:Type ListView}">
4144 <Setter Property="OverridesDefaultStyle" Value="True"/>
@@ -70,7 +73,7 @@
7073 <ListView.ItemTemplate>
7174 <DataTemplate>
7275 <Border>
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}"/>
76新增: <local:ChartsItemTypeList IconSize="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:Charts}}, Path=IconSize}" Data="{Binding}" MaxValue="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:Charts}}, Path=DataMaxValue}" IsShowBadge="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:Charts}}, Path=IsShowBadge}"/>
7477 </Border>
7578 </DataTemplate>
7679 </ListView.ItemTemplate>
@@ -296,13 +299,13 @@
296299 <MultiTrigger>
297300 <MultiTrigger.Conditions>
298301 <Condition Property="IsSearch" Value="True"/>
299删除: <Condition Property="ChartsType" Value="HorizontalA"/>
302新增: <Condition Property="ChartsType" Value="List"/>
300303 </MultiTrigger.Conditions>
301304 <Setter Property="Visibility" Value="Visible" TargetName="AHeader"/>
302305 </MultiTrigger>
303306 <Trigger Property="ChartsType"
304删除: Value="HorizontalA">
305删除: <Setter TargetName="HorizontalA" Property="Visibility" Value="Visible"/>
307新增: Value="List">
308新增: <Setter TargetName="List" Property="Visibility" Value="Visible"/>
306309 </Trigger>
307310 <Trigger Property="ChartsType"
308311 Value="Card">
@@ -320,10 +323,14 @@
320323 Value="Radar">
321324 <Setter TargetName="Radar" Property="Visibility" Value="Visible"/>
322325 </Trigger>
326新增: <Trigger Property="ChartsType"
327新增: Value="Pie">
328新增: <Setter TargetName="CommonCanvasContainer" Property="Visibility" Value="Visible"/>
329新增: </Trigger>
323330 <MultiTrigger>
324331 <MultiTrigger.Conditions>
325332 <Condition Property="IsLoading" Value="True"/>
326删除: <Condition Property="ChartsType" Value="HorizontalA"/>
333新增: <Condition Property="ChartsType" Value="List"/>
327334 </MultiTrigger.Conditions>
328335 <Setter Property="Visibility" Value="Visible" TargetName="TypeATempContainer"/>
329336 <Setter Property="Visibility" Value="Collapsed" TargetName="ListView"/>
@@ -331,7 +338,7 @@
331338 <MultiTrigger>
332339 <MultiTrigger.Conditions>
333340 <Condition Property="IsEmpty" Value="True"/>
334删除: <Condition Property="ChartsType" Value="HorizontalA"/>
341新增: <Condition Property="ChartsType" Value="List"/>
335342 </MultiTrigger.Conditions>
336343 <Setter Property="Visibility" Value="Visible" TargetName="TypeATempContainer"/>
337344 <Setter Property="Visibility" Value="Collapsed" TargetName="ListView"/>
改名UI/Themes/Charts/ChartsItemTypeA.xaml → UI/Themes/Charts/ChartsItemTypeList.xaml+5 −5看文件
@@ -4,7 +4,7 @@
44 xmlns:base="clr-namespace:UI.Controls.Base" xmlns:converter="clr-namespace:UI.Controls.Converters">
55 <converter:HextoColorConverter x:Key="HextoColorConverter"/>
66
7删除: <Style TargetType="{x:Type local:ChartsItemTypeA}">
7新增: <Style TargetType="{x:Type local:ChartsItemTypeList}">
88 <Setter Property="SnapsToDevicePixels"
99 Value="true" />
1010
@@ -13,7 +13,7 @@
1313
1414 <Setter Property="Template">
1515 <Setter.Value>
16删除: <ControlTemplate TargetType="{x:Type local:ChartsItemTypeA}">
16新增: <ControlTemplate TargetType="{x:Type local:ChartsItemTypeList}">
1717 <!--<Border Background="{TemplateBinding Background}">-->
1818 <Grid Background="{TemplateBinding Background}">
1919 <Grid x:Name="Normal">
@@ -22,7 +22,7 @@
2222 <ColumnDefinition Width="*"/>
2323 </Grid.ColumnDefinitions>
2424 <Border Margin="0,0,10,0" x:Name="IconBorder" BorderBrush="Transparent" BorderThickness="2" Background="{DynamicResource ListItemIconBgBrush}" CornerRadius="6" Width="50" Height="50" HorizontalAlignment="Left">
25删除: <Image x:Name="IconObj" Width="25" HorizontalAlignment="Center" VerticalAlignment="Center"/>
25新增: <Image x:Name="IconObj" Width="{TemplateBinding IconSize}" Height="{TemplateBinding IconSize}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
2626 </Border>
2727
2828 <StackPanel Grid.Column="1" x:Name="ValueContainer" VerticalAlignment="Center" >
@@ -33,7 +33,7 @@
3333 </Grid.ColumnDefinitions>
3434 <TextBlock x:Name="NameTextObj" Foreground="{DynamicResource DefaultTextBrush}" HorizontalAlignment="Left" VerticalAlignment="Center" />
3535
36删除: <ListView x:Name="BadgeListView" Visibility="Collapsed" Grid.Column="1" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:ChartsItemTypeA}}, Path=Data.BadgeList}" Margin="0,0,0,0" ScrollViewer.HorizontalScrollBarVisibility="Disabled" >
36新增: <ListView x:Name="BadgeListView" Visibility="Collapsed" Grid.Column="1" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:ChartsItemTypeList}}, Path=Data.BadgeList}" Margin="0,0,0,0" ScrollViewer.HorizontalScrollBarVisibility="Disabled" >
3737
3838 <ListBox.Resources>
3939 <Style TargetType="{x:Type ListView}">
@@ -93,7 +93,7 @@
9393 x:Name="ValueBlockObj"
9494 RadiusX="4"
9595 RadiusY="4"
96删除: Fill="#7F777777"
96新增: Fill="{DynamicResource ChartTypeListProgressBarBrush}"
9797 Height="8"
9898 VerticalAlignment="Center"
9999 HorizontalAlignment="Left"
修改UI/Themes/Generic.xaml+1 −1看文件
@@ -18,7 +18,7 @@
1818 <ResourceDictionary Source="/Tai;component/Themes/TPage.xaml"/>
1919 <ResourceDictionary Source="/Tai;component/Themes/PageContainer.xaml"/>
2020 <ResourceDictionary Source="/Tai;component/Themes/Charts/Charts.xaml"/>
21删除: <ResourceDictionary Source="/Tai;component/Themes/Charts/ChartsItemTypeA.xaml"/>
21新增: <ResourceDictionary Source="/Tai;component/Themes/Charts/ChartsItemTypeList.xaml"/>
2222 <ResourceDictionary Source="/Tai;component/Themes/Charts/ChartsItemTypeCard.xaml"/>
2323 <ResourceDictionary Source="/Tai;component/Themes/Charts/ChartsItemTypeMonth.xaml"/>
2424 <ResourceDictionary Source="/Tai;component/Themes/Charts/ChartsItemTypeColumn.xaml"/>