[Infragistics]利用第三方控件实现仪盘表效果

最近在做ERP数据分析的时候,看到网友法者:利用用友自带的BI的工具做出仪盘表的效果:

那如果我也想做呢?查询了网上很做资料都没有结果。很多都要收费和破解

这个时候想到了用Infragistics第三方控件自己有一个基于WEB2.0的破解版控件,那就先试试吧。

首先引用DLL

Infragistics2.WebUI.Shared.v7.3.dll

Infragistics2.WebUI.UltraWebGauge.v7.3.dll

类库:using Infragistics.UltraGauge.Resources;

参考官方网站:http://help.infragistics.com/Help/NetAdvantage/ASPNET/2010.3/CLR4.0/html/WebGauge_Web_Creating_a_Radial_WebGauge_Using_Code.html

 private void Gauge2() 
    {
     // Infragistics.WebUI.UltraWebGauge.UltraGauge ultraGauge2 =
     //new Infragistics.WebUI.UltraWebGauge.UltraGauge();
         
        RadialGauge myRadialGauge = new RadialGauge();
        RadialGaugeScale myScale = new RadialGaugeScale();
        NumericAxis numericAxis1 = new NumericAxis();
        RadialGaugeNeedle myNeedle = new RadialGaugeNeedle();
        SolidFillBrushElement mySolidFillBrushElement = new SolidFillBrushElement();
        SolidFillBrushElement mySolidFillBrushElementMajor =
          new SolidFillBrushElement();
        SolidFillBrushElement mySolidFillBrushElementMinor =
          new SolidFillBrushElement();
        SolidFillBrushElement mySolidFillBrushElementMinorStroke =
          new SolidFillBrushElement();
        StrokeElement myStrokeElement = new StrokeElement();
        SolidFillBrushElement mySolidFillBrushElement2 = new SolidFillBrushElement();
        SimpleGradientBrushElement mySimpleGradientBrushElement =
          new SimpleGradientBrushElement();
        SolidFillBrushElement mySolidFillBrushElement1 = new SolidFillBrushElement();
        mySolidFillBrushElement.Color = System.Drawing.Color.Black;
        myRadialGauge.Dial.BrushElement = mySolidFillBrushElement;
        myRadialGauge.Margin = new Margin(10, 10, 10, 10, Measure.Pixels);
        //Set the following Axis properties and add the Axis to your scale: 
        numericAxis1.EndValue = 120; //仪盘表最大数值
        myScale.Axes.Add(numericAxis1);
        //Set the following Scale properties
        myScale.EndAngle = 405; 
        myScale.StartAngle = 135;
       
        mySolidFillBrushElement1.Color = System.Drawing.Color.White;
        myScale.Labels.BrushElement = mySolidFillBrushElement1;

        //Set the following Label properties
        myScale.Labels.Extent = 65;
        myScale.Labels.Font =
          new System.Drawing.Font("Arial", 14F,
          System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel);
        myScale.Labels.Frequency = 20;//大间隔显示数值:0 20 40 60 
        myScale.Labels.Orientation =
          Infragistics.UltraGauge.Resources.RadialLabelOrientation.Horizontal;
        myScale.Labels.SpanMaximum = 18;

        //Set the following major Tickmark properties: 
        mySolidFillBrushElementMajor.Color =
  System.Drawing.Color.FromArgb(((int)(((byte)(189)))), ((int)(((byte)(189)))),
  ((int)(((byte)(189)))));
        myScale.MajorTickmarks.BrushElement = mySolidFillBrushElementMajor;
        myScale.MajorTickmarks.EndExtent = 95; 
        myScale.MajorTickmarks.EndWidth = 3;
        myScale.MajorTickmarks.Frequency = 10; //大间隔显示频率
        myScale.MajorTickmarks.StartExtent = 85;
        myScale.MajorTickmarks.StartWidth = 3;

        //Set the following minor Tickmark properties: 
        mySolidFillBrushElementMinor.Color =
  System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(240)))),
  ((int)(((byte)(240)))));
        myScale.MinorTickmarks.BrushElement = mySolidFillBrushElementMinor;
        myScale.MinorTickmarks.EndExtent = 90; 
        myScale.MinorTickmarks.EndWidth = 1;
        myScale.MinorTickmarks.Frequency = 2;
        //小间隔频率=myScale.MajorTickmarks.Frequency/myScale.MinorTickmarks.Frequency=10/2=5
        myScale.MinorTickmarks.StartExtent = 85;
        mySolidFillBrushElementMinorStroke.Color =
          System.Drawing.Color.FromArgb(((int)(((byte)(135)))), ((int)(((byte)(135)))),
          ((int)(((byte)(135)))));
        myStrokeElement.BrushElement = mySolidFillBrushElementMinorStroke;
        myScale.MinorTickmarks.StrokeElement = myStrokeElement;

        //Set the following Anchor properties: 
        myNeedle.Anchor.BrushElement = mySimpleGradientBrushElement;
        mySimpleGradientBrushElement.EndColor = System.Drawing.Color.WhiteSmoke;
        mySimpleGradientBrushElement.GradientStyle =
          Infragistics.UltraGauge.Resources.Gradient.BackwardDiagonal;
        mySimpleGradientBrushElement.StartColor = System.Drawing.Color.Gray;
        myNeedle.Anchor.RadiusMeasure =
          Infragistics.UltraGauge.Resources.Measure.Percent;

        //设置指针属性
        mySolidFillBrushElement2.Color = System.Drawing.Color.Red;
        myNeedle.BrushElement = mySolidFillBrushElement2;
        myNeedle.EndExtent = 65;
        myNeedle.EndWidth = 1;
        myNeedle.MidExtent = 0;
        myNeedle.MidWidth = 3;
        myNeedle.Precision = 1;
        myNeedle.StartExtent = -20;
        myNeedle.StartWidth = 3;
        myNeedle.Value = int.Parse(TextBox2.Text.Trim());//指针显示值
        myNeedle.WidthMeasure = Measure.Percent;
        myScale.Markers.Add(myNeedle);

        
        myRadialGauge.Scales.Add(myScale);
        UltraGauge2.Gauges.Add(myRadialGauge);
        //图形的大小
        UltraGauge2.Height = Unit.Pixel(200); 
        UltraGauge2.Width = Unit.Pixel(200);

        //显示文本框
        BoxAnnotation boxAnnotation1 = new BoxAnnotation();
        SolidFillBrushElement solidFillBrushElement1 = new SolidFillBrushElement();
        SolidFillBrushElement solidFillBrushElement2 = new SolidFillBrushElement();
        boxAnnotation1.Bounds = new System.Drawing.Rectangle(38, 70, 25, 10);
        boxAnnotation1.BoundsMeasure = Infragistics.UltraGauge.Resources.Measure.Percent;
        solidFillBrushElement2.Color = System.Drawing.Color.White;
        boxAnnotation1.Label.BrushElement = solidFillBrushElement2;
        boxAnnotation1.Label.FormatString = "Speed";
        this.UltraGauge2.Annotations.Add(boxAnnotation1);


        this.Controls.Add(UltraGauge2);

    }


我在前台拉了一个控件主要是为了定位位置。

<%@ Register Assembly="Infragistics2.WebUI.UltraWebGauge.v7.3, Version=7.3.20073.38, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb"
    Namespace="Infragistics.WebUI.UltraWebGauge" TagPrefix="igGauge" %>
<%@ Register Assembly="Infragistics2.WebUI.UltraWebGauge.v7.3, Version=7.3.20073.38, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb"
    Namespace="Infragistics.UltraGauge.Resources" TagPrefix="igGaugeProp" %>

        <igGauge:UltraGauge ID="UltraGauge2" runat="server"  >
        </igGauge:UltraGauge>

看看效果是否达到了呢?


界面单调,具体功能还没有深入研究,如果你知道具体的使用方法请与我联系。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厦门德仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值