提交记录修改UI/Controls/Charts/Charts.cs+68 −2看文件
修改UI/Themes/Charts/Charts.xaml+99 −2看文件
| @@ -295,6 +295,47 @@ namespace UI.Controls.Charts | ||
| 295 | 295 | |
| 296 | 296 | #endregion |
| 297 | 297 | |
| 298 | 新增: public bool IsShowValuesPopup | |
| 299 | 新增: { | |
| 300 | 新增: get { return (bool)GetValue(IsShowValuesPopupProperty); } | |
| 301 | 新增: set { SetValue(IsShowValuesPopupProperty, value); } | |
| 302 | 新增: } | |
| 303 | 新增: public static readonly DependencyProperty IsShowValuesPopupProperty = | |
| 304 | 新增: DependencyProperty.Register("IsShowValuesPopup", | |
| 305 | 新增: typeof(bool), | |
| 306 | 新增: typeof(Charts), | |
| 307 | 新增: new PropertyMetadata(false)); | |
| 308 | 新增: public FrameworkElement ValuesPopupPlacementTarget | |
| 309 | 新增: { | |
| 310 | 新增: get { return (FrameworkElement)GetValue(ValuesPopupPlacementTargetProperty); } | |
| 311 | 新增: set { SetValue(ValuesPopupPlacementTargetProperty, value); } | |
| 312 | 新增: } | |
| 313 | 新增: public static readonly DependencyProperty ValuesPopupPlacementTargetProperty = | |
| 314 | 新增: DependencyProperty.Register("ValuesPopupPlacementTarget", | |
| 315 | 新增: typeof(FrameworkElement), | |
| 316 | 新增: typeof(Charts)); | |
| 317 | 新增: | |
| 318 | 新增: public List<ChartColumnInfoModel> ColumnValuesInfoList | |
| 319 | 新增: { | |
| 320 | 新增: get { return (List<ChartColumnInfoModel>)GetValue(ColumnValuesInfoListProperty); } | |
| 321 | 新增: set { SetValue(ColumnValuesInfoListProperty, value); } | |
| 322 | 新增: } | |
| 323 | 新增: public static readonly DependencyProperty ColumnValuesInfoListProperty = | |
| 324 | 新增: DependencyProperty.Register("ColumnValuesInfoList", | |
| 325 | 新增: typeof(List<ChartColumnInfoModel>), | |
| 326 | 新增: typeof(Charts) | |
| 327 | 新增: ); | |
| 328 | 新增: | |
| 329 | 新增: public double ValuesPopupHorizontalOffset | |
| 330 | 新增: { | |
| 331 | 新增: get { return (double)GetValue(ValuesPopupHorizontalOffsetProperty); } | |
| 332 | 新增: set { SetValue(ValuesPopupHorizontalOffsetProperty, value); } | |
| 333 | 新增: } | |
| 334 | 新增: public static readonly DependencyProperty ValuesPopupHorizontalOffsetProperty = | |
| 335 | 新增: DependencyProperty.Register("ValuesPopupHorizontalOffset", | |
| 336 | 新增: typeof(double), | |
| 337 | 新增: typeof(Charts)); | |
| 338 | 新增: | |
| 298 | 339 | private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) |
| 299 | 340 | { |
| 300 | 341 | var charts = (d as Charts); |
| @@ -853,7 +894,13 @@ namespace UI.Controls.Charts | ||
| 853 | 894 | Width = new GridLength(1, GridUnitType.Star) |
| 854 | 895 | }); |
| 855 | 896 | |
| 897 | 新增: var valueContainer = new Grid(); | |
| 898 | 新增: | |
| 899 | 新增: Grid.SetColumn(valueContainer, i); | |
| 900 | 新增: ColumnContainer.Children.Add(valueContainer); | |
| 856 | 901 | |
| 902 | 新增: var valuesPopupList = new List<ChartColumnInfoModel>(); | |
| 903 | 新增: | |
| 857 | 904 | for (int di = 0; di < columnCount; di++) |
| 858 | 905 | { |
| 859 | 906 | var item = list[di]; |
| @@ -866,11 +913,30 @@ namespace UI.Controls.Charts | ||
| 866 | 913 | column.Color = item.Color; |
| 867 | 914 | column.ColumnName = item.ColumnNames != null && item.ColumnNames.Length > 0 ? item.ColumnNames[i] : (i + NameIndexStart).ToString(); |
| 868 | 915 | Panel.SetZIndex(column, column.Value > 0 ? -(int)column.Value : 0); |
| 869 | 删除: Grid.SetColumn(column, i); | |
| 870 | 删除: ColumnContainer.Children.Add(column); | |
| 916 | 新增: | |
| 917 | 新增: valueContainer.Children.Add(column); | |
| 918 | 新增: | |
| 919 | 新增: valuesPopupList.Add(new ChartColumnInfoModel() | |
| 920 | 新增: { | |
| 921 | 新增: Color = item.Color, | |
| 922 | 新增: Name = item.Name, | |
| 923 | 新增: Icon = item.Icon, | |
| 924 | 新增: Text = Covervalue(column.Value) + Unit | |
| 925 | 新增: }); | |
| 871 | 926 | } |
| 872 | 927 | |
| 928 | 新增: valueContainer.MouseEnter += (e, c) => | |
| 929 | 新增: { | |
| 930 | 新增: ColumnValuesInfoList = valuesPopupList; | |
| 931 | 新增: ValuesPopupPlacementTarget = valueContainer; | |
| 932 | 新增: IsShowValuesPopup = true; | |
| 873 | 933 | |
| 934 | 新增: ValuesPopupHorizontalOffset = -17.5 + (valueContainer.ActualWidth / 2); | |
| 935 | 新增: }; | |
| 936 | 新增: valueContainer.MouseLeave += (e, c) => | |
| 937 | 新增: { | |
| 938 | 新增: IsShowValuesPopup = false; | |
| 939 | 新增: }; | |
| 874 | 940 | } |
| 875 | 941 | |
| 876 | 942 | var infoList = new List<ChartColumnInfoModel>(); |
| @@ -38,12 +38,109 @@ | ||
| 38 | 38 | <TextBlock Margin="0,10,0,0" Text="{TemplateBinding Total}" FontSize="20" Foreground="#1a1919"/> |
| 39 | 39 | </StackPanel> |
| 40 | 40 | <Grid Grid.Row="1" Margin="0,20,0,0"> |
| 41 | 新增: <Popup | |
| 42 | 新增: AllowsTransparency="True" | |
| 43 | 新增: IsOpen="{TemplateBinding IsShowValuesPopup}" | |
| 44 | 新增: Placement="Top" | |
| 45 | 新增: PlacementTarget="{TemplateBinding ValuesPopupPlacementTarget}" | |
| 46 | 新增: HorizontalOffset="{TemplateBinding ValuesPopupHorizontalOffset}"> | |
| 47 | 新增: <Border | |
| 48 | 新增: Background="White" | |
| 49 | 新增: CornerRadius="12" | |
| 50 | 新增: Padding="10" | |
| 51 | 新增: Margin="10"> | |
| 52 | 新增: <Border.Effect> | |
| 53 | 新增: <DropShadowEffect BlurRadius="10" ShadowDepth="0" Direction="0" Color="Gray" Opacity=".1"/> | |
| 54 | 新增: </Border.Effect> | |
| 55 | 新增: | |
| 56 | 新增: <Grid> | |
| 57 | 新增: <Path | |
| 58 | 新增: Width="15" | |
| 59 | 新增: Height="15" | |
| 60 | 新增: SnapsToDevicePixels="False" | |
| 61 | 新增: Data="M 0 0 L 7.5 7.5 L 15 0" Fill="White" | |
| 62 | 新增: Stroke="White" | |
| 63 | 新增: StrokeThickness="1" | |
| 64 | 新增: VerticalAlignment="Bottom" | |
| 65 | 新增: HorizontalAlignment="Left" | |
| 66 | 新增: Margin="0,0,0,-22" | |
| 67 | 新增: /> | |
| 68 | 新增: <!--列数据--> | |
| 69 | 新增: <ListView ItemsSource="{TemplateBinding ColumnValuesInfoList}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" > | |
| 70 | 新增: <ListBox.Resources> | |
| 71 | 新增: <Style TargetType="{x:Type ListView}"> | |
| 72 | 新增: <Setter Property="OverridesDefaultStyle" Value="True"/> | |
| 73 | 新增: | |
| 74 | 新增: <Setter Property="Template"> | |
| 75 | 新增: <Setter.Value> | |
| 76 | 新增: <ControlTemplate TargetType="{x:Type ListView}"> | |
| 77 | 新增: <Border> | |
| 78 | 新增: <ItemsPresenter /> | |
| 79 | 新增: </Border> | |
| 80 | 新增: </ControlTemplate> | |
| 81 | 新增: </Setter.Value> | |
| 82 | 新增: </Setter> | |
| 83 | 新增: </Style> | |
| 84 | 新增: <Style TargetType="{x:Type ListViewItem}"> | |
| 85 | 新增: <Setter Property="OverridesDefaultStyle" Value="True"/> | |
| 86 | 新增: <Setter Property="Template"> | |
| 87 | 新增: <Setter.Value> | |
| 88 | 新增: <ControlTemplate TargetType="{x:Type ListViewItem}"> | |
| 89 | 新增: <Border BorderBrush="Transparent" BorderThickness="2" x:Name="Border" Background="White" Margin="0" CornerRadius="10"> | |
| 90 | 新增: | |
| 91 | 新增: <ContentPresenter/> | |
| 92 | 新增: </Border> | |
| 93 | 新增: </ControlTemplate> | |
| 94 | 新增: </Setter.Value> | |
| 95 | 新增: </Setter> | |
| 96 | 新增: | |
| 97 | 新增: </Style> | |
| 98 | 新增: </ListBox.Resources> | |
| 99 | 新增: <ListBox.ItemsPanel> | |
| 100 | 新增: <ItemsPanelTemplate> | |
| 101 | 新增: <VirtualizingStackPanel/> | |
| 102 | 新增: </ItemsPanelTemplate> | |
| 103 | 新增: </ListBox.ItemsPanel> | |
| 104 | 新增: <ListView.ItemTemplate> | |
| 105 | 新增: <DataTemplate> | |
| 106 | 新增: | |
| 107 | 新增: <StackPanel> | |
| 108 | 新增: <Grid> | |
| 109 | 新增: <Grid.ColumnDefinitions> | |
| 110 | 新增: <ColumnDefinition Width="20"/> | |
| 111 | 新增: <ColumnDefinition Width="auto"/> | |
| 112 | 新增: <ColumnDefinition Width="auto"/> | |
| 113 | 新增: | |
| 114 | 新增: </Grid.ColumnDefinitions> | |
| 115 | 新增: <Border Width="10" CornerRadius="4" Height="10" Background="{Binding Color,Converter={StaticResource HextoColorConverter}}"> | |
| 116 | 新增: <!--颜色--> | |
| 117 | 新增: </Border> | |
| 118 | 新增: | |
| 119 | 新增: <Border Grid.Column="1" Margin="5,0,0,0"> | |
| 120 | 新增: <!--名称--> | |
| 121 | 新增: <TextBlock Foreground="#5c5c5c" VerticalAlignment="Center" Text="{Binding Name}" FontSize="12"/> | |
| 122 | 新增: </Border> | |
| 123 | 新增: <Border Grid.Column="2"> | |
| 124 | 新增: <!--总计和百分比--> | |
| 125 | 新增: <TextBlock FontSize="12" Margin="5,0,0,0" Foreground="#FF8A8A8A" VerticalAlignment="Center" Text="{Binding Text}"/> | |
| 126 | 新增: | |
| 127 | 新增: </Border> | |
| 128 | 新增: | |
| 129 | 新增: </Grid> | |
| 130 | 新增: | |
| 131 | 新增: </StackPanel> | |
| 132 | 新增: </DataTemplate> | |
| 133 | 新增: </ListView.ItemTemplate> | |
| 134 | 新增: </ListView> | |
| 135 | 新增: </Grid> | |
| 136 | 新增: </Border> | |
| 137 | 新增: </Popup> | |
| 41 | 138 | <TextBlock Panel.ZIndex="2" Margin="0,-8,0,0" HorizontalAlignment="Right" VerticalAlignment="Top" Text="{TemplateBinding Maximum}" Foreground="#ccc" FontSize="12"/> |
| 42 | 139 | |
| 43 | 删除: <TextBlock Panel.ZIndex="2" HorizontalAlignment="Right" VerticalAlignment="Center" Text="{TemplateBinding Median}" Foreground="#ccc" FontSize="12"/> | |
| 140 | 新增: <TextBlock Panel.ZIndex="2" HorizontalAlignment="Right" VerticalAlignment="Center" Text="{TemplateBinding Median}" Foreground="#ccc" FontSize="12" Margin="0,0,0,30"/> | |
| 44 | 141 | <Line Stroke="#ccc" Opacity="1" HorizontalAlignment="Stretch" |
| 45 | 142 | X2="{Binding ActualWidth, RelativeSource={RelativeSource Self}}" |
| 46 | 删除: StrokeDashArray="2 5" StrokeThickness=".8" VerticalAlignment="Center" Margin="10,0"/> | |
| 143 | 新增: StrokeDashArray="2 5" StrokeThickness=".8" VerticalAlignment="Center" Margin="10,0,10,30"/> | |
| 47 | 144 | |
| 48 | 145 | <Line Stroke="#ccc" Opacity="1" HorizontalAlignment="Stretch" |
| 49 | 146 | X2="{Binding ActualWidth, RelativeSource={RelativeSource Self}}" |

