德仔

工作学习之笔记

[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>

看看效果是否达到了呢?


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

1348118583_4652.jpg
阅读更多

扫码向博主提问

去开通我的Chat快问

厦门德仔

博客专家

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • ERP
  • .NET
  • SQL
  • Ext.Net
  • DevExpress
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/david_520042/article/details/7394188
上一篇[MSCHART]柱状图
下一篇[MSSQL]一道合并成绩最高科目的解决方法
想对作者说点什么? 我来说一句

Infragistics2.Win.v10.2

2012年10月22日 3.57MB 下载

Infragistics2016.2破解版

2017年05月09日 5.56MB 下载

PowerCharts_XT_Eval.zip

2014年03月31日 26.24MB 下载

没有更多推荐了,返回首页

关闭
关闭