private void Chart_LegendItemCreated(object sender, ChartLegendItemCreatedEventArgs e)
        {
            object val   = e.LegendItem.DataPoint;
            string value = ((TasksChartViewModel.TaskChartItem)val).Height.ToString();

            e.LegendItem.Label += ": " + value;
        }
        void Chart_LegendItemCreated(object sender, ChartLegendItemCreatedEventArgs e)
        {
            ChartDataModel dataModel      = e.LegendItem.DataPoint as ChartDataModel;
            float          heightAndWidth = Utility.IsIPad ? 80 : 60;

            UIView legendView = new UIView();

            legendView.Frame = new CGRect(0, 0, 130, heightAndWidth - 10);

            SFChart legendChart = new SFChart();

            legendChart.Frame = new CGRect(0, 0, heightAndWidth, heightAndWidth);

            UIImageView imageView = new UIImageView();

            imageView.Image = UIImage.FromBundle(dataModel.Image);
            imageView.Frame = new CGRect(legendChart.Frame.X / 2, legendChart.Frame.Y / 2, Utility.IsIPad ? 30 : 20, Utility.IsIPad ? 30 : 20);

            SFDoughnutSeries series = new SFDoughnutSeries();

            series.IsStackedDoughnut = true;
            series.Color             = e.LegendItem.IconColor;
            series.ItemsSource       = new List <ChartDataModel>()
            {
                dataModel
            };
            series.XBindingPath        = "XValue";
            series.YBindingPath        = "YValue";
            series.StartAngle          = -90;
            series.EndAngle            = 270;
            series.MaximumValue        = 100;
            series.Spacing             = 0.2;
            series.DoughnutCoefficient = 0.8;
            series.CircularCoefficient = 1.0;
            series.CapStyle            = DoughnutCapStyle.BothCurve;
            series.CenterView          = imageView;
            legendChart.Series.Add(series);
            legendView.AddSubview(legendChart);

            UILabel yLabel = new UILabel();

            yLabel.Frame     = new CGRect(Utility.IsIPad ? 77 : 57, Utility.IsIPad ? 20 : 10, 80, 18);
            yLabel.TextColor = e.LegendItem.IconColor;
            yLabel.Font      = UIFont.FromName("Helvetica", 14f);
            yLabel.Text      = dataModel.YValue.ToString() + "%";

            UILabel xLabel = new UILabel();

            xLabel.Frame     = new CGRect(Utility.IsIPad ? 77 : 57, Utility.IsIPad ? 40 : 30, 80, 18);
            xLabel.TextColor = UIColor.Black;
            xLabel.Font      = UIFont.FromName("Helvetica", 12f);
            xLabel.Text      = dataModel.XValue.ToString();

            legendView.AddSubview(yLabel);
            legendView.AddSubview(xLabel);

            e.LegendItem.View = legendView;
        }
Exemplo n.º 3
0
        private void Chart_LegendItemCreated(object sender, ChartLegendItemCreatedEventArgs e)
        {
            Model model = e.LegendItem.DataPoint as Model;

            e.LegendItem.Label      = model.XValue + ": " + model.YValue.ToString();
            e.LegendItem.LabelStyle = new ChartLegendLabelStyle()
            {
                TextColor  = model.YValue > 50 ? Color.Green : Color.Red,
                FontFamily = model.YValue > 50 ? "Times New Roman" : "Arial"
            };
        }
Exemplo n.º 4
0
        void Chart_LegendItemCreated(object sender, ChartLegendItemCreatedEventArgs e)
        {
            MultipleCircleModel datamodel = e.LegendItem.DataPoint as MultipleCircleModel;

            LinearLayout outerLayout = new LinearLayout(chart.Context);

            outerLayout.Orientation = Orientation.Horizontal;
            outerLayout.SetBackgroundColor(Color.Transparent);

            LinearLayout innerLayout = new LinearLayout(chart.Context);

            innerLayout.Orientation = Orientation.Vertical;
            innerLayout.SetPadding(3, 30, 3, 0);
            innerLayout.SetBackgroundColor(Color.Transparent);

            TextView loanName    = new TextView(chart.Context);
            TextView loanPercent = new TextView(chart.Context);

            ImageView centerView = new ImageView(chart.Context);

            centerView.LayoutParameters = new ViewGroup.LayoutParams(new LinearLayout.LayoutParams((int)(40 * density), (int)(40 * density)));
            centerView.SetImageResource(datamodel.ImageResId);

            loanPercent.Text          = (e.LegendItem.DataPoint as MultipleCircleModel).YValue + "%";
            loanPercent.TextAlignment = Android.Views.TextAlignment.Center;
            loanPercent.Gravity       = GravityFlags.Center;
            loanPercent.SetTextColor(e.LegendItem.IconColor);
            loanPercent.TextSize = 15;

            loanName.Text          = (e.LegendItem.DataPoint as MultipleCircleModel).XValue;
            loanName.TextAlignment = Android.Views.TextAlignment.Center;
            loanName.Gravity       = GravityFlags.Center;
            loanName.SetTextColor(Color.Black);
            innerLayout.AddView(loanPercent);
            innerLayout.AddView(loanName);

            SfChart sfChart = new SfChart(chart.Context);

            sfChart.LayoutParameters = new ViewGroup.LayoutParams(new LinearLayout.LayoutParams((int)(65 * density), (int)(65 * density)));
            sfChart.SetBackgroundColor(Color.White);

            DoughnutSeries series = new DoughnutSeries();

            series.Color       = e.LegendItem.IconColor;
            series.ItemsSource = new ObservableCollection <MultipleCircleModel>()
            {
                datamodel
            };
            series.XBindingPath        = "XValue";
            series.YBindingPath        = "YValue";
            series.StartAngle          = -90;
            series.EndAngle            = 270;
            series.MaximumValue        = 100;
            series.Spacing             = 0.4;
            series.DoughnutCoefficient = 0.6;
            series.CircularCoefficient = 0.9;
            series.CapStyle            = DoughnutCapStyle.BothCurve;
            series.IsStackedDoughnut   = true;
            series.CenterView          = centerView;
            sfChart.Series.Add(series);

            outerLayout.AddView(sfChart);
            outerLayout.AddView(innerLayout);
            e.LegendItem.View = outerLayout;
        }