【问题标题】:Circular Gauge Gradient - TeeChart - MonoAndroid圆形仪表梯度 - TeeChart - MonoAndroid
【发布时间】:2012-10-03 14:00:38
【问题描述】:

我正在使用 TreeChart 制作如图所示的指标。 但我有一个问题,我无法使三色渐变到那个量规。这是我的代码

        Steema.TeeChart.TChart tChart = new Steema.TeeChart.TChart(this);
        tChart.Panel.Transparent = false;
        Steema.TeeChart.Styles.Gauges gauges = new Steema.TeeChart.Styles.Gauges(tChart.Chart);
        Steema.TeeChart.Drawing.Gradient g = new Steema.TeeChart.Drawing.Gradient(gauges.Chart);


        gauges.bBrush.Gradient.Direction = Steema.TeeChart.Drawing.GradientDirection.DiagonalUp;
        gauges.bBrush.Gradient.StartColor = System.Drawing.Color.Red;
        gauges.bBrush.Gradient.MiddleColor = System.Drawing.Color.Black;
        gauges.bBrush.Gradient.EndColor = System.Drawing.Color.Blue;
        gauges.bBrush.Gradient.Visible = true;
        gauges.Pen.Color = System.Drawing.Color.FromArgb(5,56,73);

        gauges.TotalAngle = 180; // circular arc  
        gauges.RotationAngle = 180; // arc rotation angle  
        gauges.HandStyle = Steema.TeeChart.Styles.HandStyle.Triangle; // pointer style  
        gauges.Center.Style = Steema.TeeChart.Styles.PointerStyles.Circle; // SPHERE center circle style  
        gauges.Center.HorizSize = 5; // center circle level size  
        gauges.Center.VertSize = 5; // center circle vertical size 

        gauges.ShowInLegend = false; // display the legend  
        gauges.HandDistance = 23; // pointer length  

        //---------------------------------------------------
        gauges.Value = 80;
        gauges.Minimum = 0; //   minimum;
        gauges.Maximum = 100; // maximum value  
        //----------------------------------------------------

        gauges.MinorTickDistance = 0;

        gauges.Pen.DashWidth = 23;
        gauges.Chart.Axes.Left.AxisPen.Width = 65; //   brush width; 
        gauges.Chart.Axes.Left.AxisPen.Color = System.Drawing.Color.Red;
        gauges.Chart.Axes.Left.MinorTickCount = 5; // the scale value scale line number  
        gauges.Chart.Axes.Left.MinorTicks.Length = 10; // the scale value scale line length of  
        gauges.Chart.Axes.Left.Ticks.Length = 20; // display the value scale line length of  
        gauges.Chart.Axes.Left.Increment = 3000; // the scale value of interval size

        SetContentView(tChart) ;

我还尝试了以下代码行

        gauges.CircleGradient.Direction = Steema.TeeChart.Drawing.GradientDirection.DiagonalUp;
        gauges.CircleGradient.Visible = true;
        gauges.CircleGradient.StartColor = System.Drawing.Color.Green;
        gauges.CircleGradient.EndColor = System.Drawing.Color.Red;
        gauges.CircleGradient.UseStandardGradient = true;

希望能帮到你

问候

【问题讨论】:

    标签: mono xamarin.android gradient teechart gauge


    【解决方案1】:

    您应该使用 Steema.TeeChart.Styles.CircularGauge 而不是 Steema.TeeChart.Styles.Gauges,后者是一个更简单的仪表版本。例如,使用下面的代码 sn-p,您将获得与链接中的图像类似的仪表:

    这与您正在寻找的相似吗?

      tChart1.Header.Visible = false;
    
      Steema.TeeChart.Styles.CircularGauge circularGauge1 = new Steema.TeeChart.Styles.CircularGauge(tChart1.Chart);
    
      circularGauge1.Frame.Visible = false;
      circularGauge1.FaceBrush.Visible = false;
      circularGauge1.DisplayTotalAngle = 180;
      circularGauge1.TotalAngle = 180;
      circularGauge1.Value = 200;
      circularGauge1.Ticks.Visible = false;
      circularGauge1.Minimum = 0;
      circularGauge1.Maximum = 1000;
      circularGauge1.Axis.AxisPen.Visible = false;
      circularGauge1.Axis.Increment = 500;
      circularGauge1.RedLine.Visible = false;
      circularGauge1.GreenLineStartValue = 0;
      circularGauge1.GreenLineEndValue = 1000;
      circularGauge1.GreenLine.Gradient.Direction = Steema.TeeChart.Drawing.GradientDirection.LeftRight;
      circularGauge1.GreenLine.Gradient.UseMiddle = true;
      circularGauge1.GreenLine.Gradient.StartColor = Color.Orange;
      circularGauge1.GreenLine.Gradient.MiddleColor = Color.Yellow;
      circularGauge1.GreenLine.Gradient.EndColor = Color.Green;
      circularGauge1.GreenLine.Pen.Visible = false;
    

    【讨论】:

    • 我认为提供的替代方案不符合您想要衡量的方式。客户想要这样的东西greatofficetips.files.wordpress.com/2012/09/…我希望你能帮助我。谢谢
    • @dev_xinito 好的,我已经更新了我的答案,回复了这个。
    • 谢谢纳西亚,正是我想要的。如果您可以更改指标的类型,您会帮助我吗?在我的示例中,我将这些代码行放在了仪表板上。HandStyle = Steema.TeeChart.Styles.HandStyle.Triangle; // 指针样式 gauges.Center.Style = Steema.TeeChart.Styles.PointerStyles.Circle; // SPHERE 中心圆样式
    • @dev_xinito 不客气。目前不支持像 CircularGauge.Hand.Style 这样的箭头。我已将它 (TF02016399) 添加到愿望清单中,以便在未来的版本中实施。就 CircularGauge.Center 而言,您可以将 Hand.Brush 分配给它: circularGauge1.Center.Style = Steema.TeeChart.Styles.PointerStyles.Circle; circularGauge1.Center.Brush = circularGauge1.Hand.Brush;