C#使用DevExpress中的XtraCharts控件实现图表

目录
  • 一、总体概述
  • 二、chartControl层\XYDiagram层
    • 1.当坐标轴的数据类型是数字时
    • 2. 当前数据类型是字符串时
    • 3.当前数据类型是时间
  • 三、实例
    • 1.饼状图
      • 1.1、添加ChartControl控件
      • 1.2、准备数据
      • 1.3、根据数据创建饼状图
      • 1.4、设置饼状Series显示方式(值/百分比)
    • 2.柱状图
      • 2.1、添加ChartControl控件
      • 2.2、准备数据
      • 2.3、根据数据创建柱状图
      • 2.4、用到的方法
  • 四、事件
    • 1、CustomDrawAxisLabel : 接管此事件来获得轴标签。定制轴标签
    • 2、ObjectHotTracked:鼠标指针悬停位置
    • 3、CustomDrawSeries :自定义绘制系列
    • 4、CustomDrawSeriesPoint:自定义绘制系列点
  • 五、导出
    • 1、导出为PDF:
    • 2、导出为图像文件:
  • 六、参考

一、总体概述

官方文档:

https://docs.devexpress.com/WindowsForms/8117/controls-and-libraries/chart-control

ChartControl控件主要包括Chart Title、Legend、Annotations、Diagram、Series五部分;如图:

二、chartControl层\XYDiagram层

chartControl像DEV的其它控件一样,这一层之相当于是一个壳子,我们平时在这里面设置的属性也不多。而且都是些常规属性,比如大小、停靠方式等等。

XYDiagram这一层就比较关键了,主要是涉及到XY轴的显示方式和滚动条显示等。并且坐标轴的显示方式和数据类型也有很大的关系,主要包括3种类型,数据类型是根据添加到Series中的数据类型决定的,主要属性是ArgumentScaleType。所以涉及到3种不同的设置方式。

1.当坐标轴的数据类型是数字时

2. 当前数据类型是字符串时

其它设置同上,主要是要想出现滚动条,在设计面板中还不能实现,必须通过代码设置

DevExpress.XtraCharts.XYDiagram xyDiagram1 = (XYDiagram)this.chartControl1.Diagram;
xyDiagram1.AxisX.Range.MaxValueInternal = 3; //这个属性在设计视图里面是看不到的,只有代码里面才可以设置。
xyDiagram1.AxisX.Range.MinValueInternal = -0.5D;

3.当前数据类型是时间

AxisX ax = (XYDiagram)chartControl1.Diagram;
ax.GridSpacingAuto = false;
ax.DateTimeMeasureUnit = DateTimeMeasurementUnit.Minute;//这个可以根据你自己的情况设置
ax.DateTimeGridAlignment = DateTimeMeasurementUnit.Second; //这个是间隔单位
ax.GridSpacing = 10; // 每10秒为一个间隔。

三、实例

1.饼状图

1.1、添加ChartControl控件

在工具箱中找到ChartControl控件,拖到窗口中,创建Pie;

1.2、准备数据

private DataTable CreateChartData()
 {
     DataTable dtData = SqlHelper.GetDataSet(sql, parameters).Tables[0];
     DataTable table = new DataTable("Table1");
     table.Columns.Add("Name", typeof(String));
     table.Columns.Add("Value", typeof(Double));
     foreach (DataRow item in dtData.Rows)
     {
         var array = new object[] { item["value_num"], item["count"] };
         table.Rows.Add(array);
     }
     return table;
 }

数据可以自定义,返回类型为DataTable即可。

1.3、根据数据创建饼状图

/// <summary>
/// 根据数据创建一个饼状图
/// </summary>
/// <returns></returns>
private void BuilderDevChart()
{
    //清空ChartControl控件
    chartControl1.Series.Clear();
    Series _pieSeries = new Series("学生成绩饼状图", ViewType.Pie);
    _pieSeries.ArgumentDataMember = "Name";  //绑定图表的横坐标
    _pieSeries.ValueDataMembers[0] = "Value";  //绑定图表的纵坐标坐标
    _pieSeries.DataSource = CreateChartData(CourseID);
    chartControl1.Series.Add(_pieSeries);
    chartControl1.AddTitle("学生成绩饼状图");
    _pieSeries.LegendPointOptions.PointView = PointView.ArgumentAndValues;
    ChartUtils.SetPieNumber(_pieSeries);
}

1.4、设置饼状Series显示方式(值/百分比)

/// <summary>
/// 饼状Series设置成百分比显示
/// </summary>
/// <param name="series">Series</param>
public static void SetPiePercentage(this Series series)
{
    if (series.View is PieSeriesView)
    {
        ((PiePointOptions)series.PointOptions).PercentOptions.ValueAsPercent = true;
        ((PiePointOptions)series.PointOptions).ValueNumericOptions.Format = NumericFormat.Percent;
        ((PiePointOptions)series.PointOptions).ValueNumericOptions.Precision = 0;
    }
}

/// <summary>
/// 饼状Series设置显示格式,是以数字还是百分号显示
/// </summary>
/// <param name="series">Series</param>
public static void SetPieNumber(Series series)
{
    if (series.View is PieSeriesView)
    {
        //设置为值
        ((PiePointOptions)series.PointOptions).PercentOptions.ValueAsPercent = false;
        ((PiePointOptions)series.PointOptions).ValueNumericOptions.Format = NumericFormat.Number;
        ((PiePointOptions)series.PointOptions).ValueNumericOptions.Precision = 0;
    }
}

实现结果:

2.柱状图

2.1、添加ChartControl控件

在工具箱中找到ChartControl控件,拖到窗口中,创建Bar:

2.2、准备数据

/// <summary>
/// 创建数据
/// </summary>
/// <returns></returns>
private DataTable CreateBarData()
{
    string sql = string.Format(@"
                             SELECT c.CollegeName,COUNT(*)
                                     FROM studentmanager.student
                                     LEFT JOIN college AS c ON c.CollegeID=student.CollegeID
                                     GROUP BY c.CollegeID");
    DataSet ds = _db.GetResult(sql);
    if (ds != null)
    {
        DataTable dtData = ds.Tables[0];
        DataTable table = new DataTable("Table1");
        table.Columns.Add("Name", typeof(string));
        table.Columns.Add("Value", typeof(int));
        foreach (DataRow item in dtData.Rows)
        {
            var array = new object[] { item["CollegeName"], item["COUNT(*)"] };
            table.Rows.Add(array);
        }
        return table;
    }
    else
    {
        return null;
    }
}

数据可以自定义,返回类型为DataTable即可。

2.3、根据数据创建柱状图

private void BuilderDevBarChart()
{
    chartControl2.Series.Clear();
    Series _barSeries = new Series("", ViewType.Bar);
    _barSeries.ArgumentDataMember = "Name";//x轴
    _barSeries.ValueDataMembers[0] = "Value";//Y轴
    _barSeries.DataSource = CreateBarData();
    _barSeries.SetColorEach(true);
    chartControl2.Series.Add(_barSeries);

    _barSeries.LegendPointOptions.PointView = PointView.ArgumentAndValues;

    chartControl2.SetXLableAngle(-35);
    chartControl2.SetCrosshair(true);

    chartControl2.Legend.Direction = LegendDirection.LeftToRight;
    chartControl2.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;
    chartControl2.Legend.AlignmentVertical = LegendAlignmentVertical.BottomOutside;
    chartControl2.AddTitle("学院学生数量柱状图");
}

2.4、用到的方法

public static class ChartUtils
{
    /// <summary>
    /// 增加数据筛选
    /// </summary>
    /// <param name="SeriesBase">Series</param>
    /// <param name="columnName">列名称</param>
    /// <param name="value">列名称对应的筛选数值</param>
    /// <param name="dataFilterCondition">DataFilterCondition枚举</param>
    public static void AddDataFilter(this SeriesBase series, string columnName, object value, DataFilterCondition dataFilterCondition)
    {
        series.DataFilters.Add(new DataFilter(columnName, value.GetType().FullName, dataFilterCondition, value));
    }

    /// <summary>
    /// 设置X轴Lable角度
    /// </summary>
    /// <param name="chart">ChartControl</param>
    /// <param name="angle">角度</param>
    public static void SetXLableAngle(this ChartControl chart, int angle)
    {
        XYDiagram _xyDiagram = (XYDiagram)chart.Diagram;
        if (_xyDiagram != null)
            _xyDiagram.AxisX.Label.Angle = angle;
    }
    /// <summary>
    ///  设置Y轴Lable角度
    /// </summary>
    /// <param name="chart">ChartControl</param>
    /// <param name="angle">角度</param>
    public static void SetYLableAngle(this ChartControl chart, int angle)
    {
        XYDiagram _xyDiagram = (XYDiagram)chart.Diagram;
        _xyDiagram.AxisY.Label.Angle = angle;
    }

    /// <summary>
    /// 设置ColorEach
    /// </summary>
    /// <param name="chart">ChartControl</param>
    /// <param name="colorEach">是否设置成ColorEach</param>
    public static void SetColorEach(this Series series, bool colorEach)
    {
        SeriesViewColorEachSupportBase colorEachView = (SeriesViewColorEachSupportBase)series.View;
        if (colorEachView != null)
        {
            colorEachView.ColorEach = colorEach;
        }
    }

    /// <summary>
    /// 设置是否显示十字标线
    /// </summary>
    /// <param name="chart">ChartControl</param>
    /// <param name="crosshair">是否显示十字标线</param>
    public static void SetCrosshair(this ChartControl chart, bool crosshair)
    {
        chart.CrosshairEnabled = crosshair ? DefaultBoolean.True : DefaultBoolean.False;
        chart.CrosshairOptions.ShowArgumentLabels = crosshair;
        chart.CrosshairOptions.ShowArgumentLine = crosshair;
        chart.CrosshairOptions.ShowValueLabels = crosshair;
        chart.CrosshairOptions.ShowValueLine = crosshair;
    }

    /// <summary>
    /// 新增ChartControl的Title文字
    /// </summary>
    /// <param name="chart">ChartControl</param>
    /// <param name="title">Title文字</param>
    public static void AddTitle(this ChartControl chart, string title)
    {
        chart.Titles.Clear();  //先清除以前的标题
        ChartTitle _title = new ChartTitle();
        _title.Text = title;
        chart.Titles.Add(_title);
    }

    /// <summary>
    /// 饼状Series设置成百分比显示
    /// </summary>
    /// <param name="series">Series</param>
    public static void SetPiePercentage(this Series series)
    {
        if (series.View is PieSeriesView)
        {
            ((PiePointOptions)series.PointOptions).PercentOptions.ValueAsPercent = true;
            ((PiePointOptions)series.PointOptions).ValueNumericOptions.Format = NumericFormat.Percent;
            ((PiePointOptions)series.PointOptions).ValueNumericOptions.Precision = 0;
        }
    }

    /// <summary>
    /// 饼状Series设置显示格式,是以数字还是百分号显示
    /// </summary>
    /// <param name="series">Series</param>
    public static void SetPieNumber(Series series)
    {
        if (series.View is PieSeriesView)
        {
            //设置为值
            ((PiePointOptions)series.PointOptions).PercentOptions.ValueAsPercent = false;
            ((PiePointOptions)series.PointOptions).ValueNumericOptions.Format = NumericFormat.Number;
            ((PiePointOptions)series.PointOptions).ValueNumericOptions.Precision = 0;
        }
    }

    /// <summary>
    /// ChartControl设置标题
    /// </summary>
    /// <param name="chartControl"></param>
    /// <param name="HTitle"></param>
    public static void SetHZTitle(ref ChartControl chartControl, string HTitle)
    {
        chartControl.Titles.Clear();                    //先清除以前的标题

        //横标题设置
        ChartTitle titles = new ChartTitle();            //声明标题

        titles.Text = HTitle;                            //名称
        titles.TextColor = System.Drawing.Color.Black;   //颜色
        titles.Indent = 5;                                //设置距离  值越小柱状图就越大
        titles.Font = new Font("Tahoma", 14, FontStyle.Bold);            //设置字体
        titles.Dock = ChartTitleDockStyle.Top;           //设置对齐方式
        titles.Alignment = StringAlignment.Center;       //居中对齐
        chartControl.Titles.Add(titles);                 //添加标题
    }
}

实现结果:

四、事件

1、CustomDrawAxisLabel : 接管此事件来获得轴标签。定制轴标签

private void chartControl1_CustomDrawAxisLabel(object sender, CustomDrawAxisLabelEventArgs e)
{
    AxisBase axis = e.Item.Axis;
    if (axis is AxisY || axis is AxisY3D || axis is RadarAxisY)
    {
        double axisValue = (double)e.Item.AxisValue;
        if (axisValue < 0)
        {
            e.Item.TextColor = Color.Red;
        }
        else if (axisValue > 0)
        {
            e.Item.Text = "+" + e.Item.Text;
            e.Item.TextColor = Color.Green;
        }
        else if (axisValue == 0)
        {
            e.Item.Text = "Zero";
        }
    }
}

2、ObjectHotTracked:鼠标指针悬停位置

private void chartControl1_ObjectHotTracked(object sender, HotTrackEventArgs e)
{
    if (e.AdditionalObject is AxisTitle)
    {
        MessageBox.Show(e.AdditionalObject.GetType().ToString());
    }
}

3、CustomDrawSeries :自定义绘制系列

private void chartControl1_CustomDrawSeries(object sender, CustomDrawSeriesEventArgs e)
{
    // Find all Bar Series by their view type,and fill them with Aqua color.
    if (e.Series.View is BarSeriesView)
        e.SeriesDrawOptions.Color = Color.Aqua;

    // Find the series by its name,  and change its line style to dash-dot-dot. (Here it's assumed that the series view type is LineSeriesView).
    if (e.Series.Name == "Line Series")
        ((LineDrawOptions)e.SeriesDrawOptions).LineStyle.DashStyle = DevExpress.XtraCharts.DashStyle.DashDotDot;

    // Find all Point Series by the type of its DrawOptions, and change their marker kind to diamond.
    if (e.SeriesDrawOptions.GetType() == typeof(PointDrawOptions))
        ((PointDrawOptions)e.SeriesDrawOptions).Marker.Kind =
        MarkerKind.Diamond;
}

4、CustomDrawSeriesPoint:自定义绘制系列点

private void chartControl1_CustomDrawSeriesPoint(object sender, CustomDrawSeriesPointEventArgs e)
{
    // These changes will be applied to Bar Series only.
    BarDrawOptions drawOptions = e.SeriesDrawOptions as BarDrawOptions;
    if (drawOptions == null)
        return;

    // Get the fill options for the series point.
    drawOptions.FillStyle.FillMode = DevExpress.XtraCharts.FillMode.Gradient;
    RectangleGradientFillOptions options = drawOptions.FillStyle.Options as RectangleGradientFillOptions;
    if (options == null)
        return;

    // Get the value at the current series point.
    double val = e.SeriesPoint[0];
    // If the value is less than 1, hide the point's label.
    if (e.SeriesPoint[0] < 1)
    {
        e.LabelText = "";
    }
    // If the value is less than 2.5, then fill the bar with green colors.
    if (val < 2.5)
    {
        options.Color2 = Color.FromArgb(154, 196, 84);
        drawOptions.Color = Color.FromArgb(81, 137, 3);
        drawOptions.Border.Color = Color.FromArgb(100, 39, 91, 1);
    }
    // ... if the value is less than 5.5, then fill the bar with yellow colors.
    else if (val < 5.5)
    {
        options.Color2 = Color.FromArgb(254, 233, 124);
        drawOptions.Color = Color.FromArgb(249, 170, 15);
        drawOptions.Border.Color = Color.FromArgb(60, 165, 73, 5);
    }
    // ... if the value is greater, then fill the bar with red colors.
    else
    {
        options.Color2 = Color.FromArgb(242, 143, 112);
        drawOptions.Color = Color.FromArgb(199, 57, 12);
        drawOptions.Border.Color = Color.FromArgb(100, 155, 26, 0);
    }
}

五、导出

1、导出为PDF:

图表会被自动拆分,

if (chartControlidx.IsPrintingAvailable) //是否能被打印或输出
   {
     // Exports to a PDF file.
     chartControlidx.ExportToPdf(path);
     // Exports to a stream as PDF.
     System.IO.FileStream pdfStream = new System.IO.FileStream(path, System.IO.FileMode.Create);
     chartControlidx.ExportToPdf(pdfStream);
      //...
      pdfStream.Close();
    }

2、导出为图像文件:

if (chartControlidx.IsPrintingAvailable) //是否能被打印或输出
  {
    // Create an image in the specified format from the chart and save it to the specified path.
    chartControlidx.ExportToImage(path, System.Drawing.Imaging.ImageFormat.Png);   //png格式
  }

六、参考

WinForm使用DecExpress控件中的ChartControl插件绘制图表

到此这篇关于C#使用XtraCharts控件实现图表的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • VS2019下安装和破解 DevExpress 19.2 插件的详细教程

    目录 0.写在最前本人vs版本为: 1.下载DevExpress最新版本插件程序官网下载试用30天地址: 2.下载完成以后安装DevExpress程序 3.下载DevExpress.Patch8.0 4.执行破解文件 5.查看DX控件是否显示 6.插件注册 0.写在最前本人vs版本为: 1.下载DevExpress 最新版本插件程序官网下载试用30天地址: https://www.devexpress.com/products/net/controls/winforms/ 2.下载完成以后安装D

  • DevExpress GridView自动滚动效果

    引言 最新有一个winform项目使用的是DevExpress的控件,所以最近都在摸索使用这套控件,实在是佩服整套控件的强大,同时代码写起来也简洁.客户有一个需求,希望报表结果能在外接的大屏幕上定时滚动.这个报表我们使用的控件就是GridControl,查询结果一屏不能显示完全,增加一个定时器,指定时间让GridView自动滚动显示下一屏的信息. 同事的实现 但是看到同事实现的代码时,却觉得有点不舒服.他大概的代码如下: /// <summary> /// 当前的行索引 /// </su

  • DevExpress之ChartControl创建Drill-Down样式的Title实例

    本文实例讲述了DevExpress中ChartControl创建Drill-Down样式的Title实现方法.分享给大家供大家参考.具体实现方法如下: 关键代码如下: 复制代码 代码如下: /// <summary> /// 创建Drill-Down样式的Title /// </summary> /// <param name="chart">ChartControl</param> /// <param name="ti

  • DevExpress之饼状图突出(Explode)设置实例

    本文实例讲述了DevExpress之饼状图突出(Explode)设置方法,分享给大家供大家参考.具体实现方法如下: 关键代码如下: 复制代码 代码如下: /// <summary> /// 饼状图突出设置 /// </summary> /// <param name="chart">ChartControl</param> /// <param name="pieSeries">Series[仅仅适用于Pi

  • DevExpress之ChartControl的SeriesTemplate实例

    本文实例讲述了DevExpress之ChartControl的SeriesTemplate用法,分享给大家供大家参考.具体方法如下: 关键代码如下: 复制代码 代码如下: using System; using System.Data; using System.Windows.Forms; using CSharpUtilHelpV2; using DevExpress.XtraCharts; namespace DevExpressChart {     public partial cla

  • Devexpress中Gridcontrol查找分组

    Devexpress中Gridcontrol查找分组 ,具体代码如下所述: private void button1_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("Group"); dt.Columns.Add("idex"); dt.Columns.Add("name"); for (int i = 0; i < 5;

  • Devexpress treelist 简介

    节点折叠 this.treeList1.CollapseAll();   一.简介 二.属性列表 1.OptionsSelection: EnableAppearanceForcusedCell:选中的Cell的Appearance设置是否可用.默认为True: EnableAppearanceForcusedRow:选中的Node的Appearance设置是否可用.默认为True InvertSelection:设置选中风格是只应用于选中的Cell,还是应用于除选中的Cell之外的所有Cell

  • DevExpress之ChartControl实现柱状图演示实例

    本文实例讲述了DevExpress中ChartControl实现柱状图演示的方法.分享给大家供大家参考.具体实现方法如下: 关键代码如下: 复制代码 代码如下: using System; using System.Data; using System.Windows.Forms; using CSharpUtilHelpV2; using DevExpress.XtraCharts; namespace DevExpressChart {     public partial class wi

  • DevExpress之ChartControl实现饼状图百分比演示实例

    本文实例讲述了DevExpress中ChartControl实现饼状图百分比演示的方法.分享给大家供大家参考.具体实现方法如下: 关键代码如下: 复制代码 代码如下: using System; using System.Data; using System.Windows.Forms; using DevExpress.XtraCharts; namespace DevExpressChart {     public partial class winPieSeriesView : Form

  • C#使用DevExpress中的XtraCharts控件实现图表

    目录 一.总体概述 二.chartControl层\XYDiagram层 1.当坐标轴的数据类型是数字时 2. 当前数据类型是字符串时 3.当前数据类型是时间 三.实例 1.饼状图 1.1.添加ChartControl控件 1.2.准备数据 1.3.根据数据创建饼状图 1.4.设置饼状Series显示方式(值/百分比) 2.柱状图 2.1.添加ChartControl控件 2.2.准备数据 2.3.根据数据创建柱状图 2.4.用到的方法 四.事件 1.CustomDrawAxisLabel :

  • C#使用DevExpress中的SplashScreenManager控件实现启动闪屏和等待信息窗口

    DevExpress中SplashScreenManager这个控件的主要作用就是显示程序集加载之前的进度条显示和进行耗时操作时候的等待界面. 一.SplashScreenManager控件的使用 1.新建一个Windows窗体,在工具栏中找到这个控件,把它拖放到Windows窗体中,开发工具默认会在窗体下边显示这个不可视控件. 2.SplashScreenManager控件只是作为加载界面的统一管理器,我们要使用加载界面,需要自行创建加载界面. 找到这个控件,点击右上角的三角图标,出现如下显示

  • Asp.net 中使用GridView控件实现Checkbox单选

    在GridView控件中,第0列有放一个CheckBox控件,现想实现对CheckBox进行单选. 先看看效果: 在ASPX页面,可以这样做: 有一点注意的是需要使用OnRowCreated事件. 在ASPX.cs代码里,实现上面OnRowCreated事件: 上面有个事件委托: Ok,特简单的.全部使用服务端来实现,或许前端js也能实现. 以上所述是小编给大家介绍的Asp.net 中使用GridView控件实现Checkbox单选,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回

  • asp.net中使用 Repeater控件拖拽实现排序并同步数据库字段排序

    数据库表中有一个单位表,里面包括ID.Name.Order等字段,现在有个后台管理功能,可以设置这些单位在某些统计表格中的先后显示顺序,于是想到用拖拽方式实现,这样操作起来更简便. 使用了GifCam软件做了一个示例动画,效果如下图所示: 于是就动手起来,发现jquery.ui中提供sortable函数,可用于排序,界面中从数据库绑定的单位使用Repeater控件,下面简单介绍下主要步骤: 1.项目中使用到的jquery-1.7.2.min.js和jquery-ui.min.js请点击进行下载,

  • WinForm中DataGridView折叠控件【超好看】

    刚到一家新公司,领导下发任务要用cs系统做一个表格折叠显示,这真是把我难倒了,自己工作6年一直以来都是做BS的系统.这如果在BS里面那太简单了,JqGrid默认都自带,可是DataGridview不支持折叠啊.自己一点经验没有,怎么办呢?于是上网搜了相关视频,资料,开始学习起来.最后借鉴源码封了这么一个东西,发出来分享下,也能让自己加深印象. 首先不多说,上图.如果大家感谢还不错,请继续往下阅读: 大概的效果就是这样. 上代码. 1.首先重写DataGridview,代码如下: public c

  • WPF中引入WindowsForms控件的方法

    本文实例讲述了WPF中引入WindowsForms控件的方法.分享给大家供大家参考,具体如下: 环境: [1]WindowsXP with SP3 [2]VS2008 with SP1 正文: Step1:在现有工程中引入Windows Forms 鼠标右键[References]->选择[Add Reference]->[.NET]标签页 加入[WindowsFormsIntegration]和[System.Windows.Forms]两项 Step2:在XAML文件里加入 [S2-1]加

  • Android中findViewById获取控件返回为空问题怎么解决

    在Android程序中,有时候需要加载非原来activity中xml布局中的控件,来使Android程序的界面更加丰富. 我本身是在使用ViewFlipper中遇到的问题. public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); inflater=(LayoutInflater)getSystemService(LAYO

  • Android开发中自定义ProgressBar控件的方法示例

    本文实例讲述了Android开发中自定义ProgressBar控件的方法.分享给大家供大家参考,具体如下: 很简单,首先加载Drawable,在onMeasure设置好其区域大小, 然后使用canvas.clipRect绘图 public class ProgressView extends ImageView { private Drawable maskDraw; /** * 加载的进度 0-100 */ private int mProcess = 20; public ProgressV

  • jQuery EasyUI中的日期控件DateBox修改方法

    jQuery EasyUI中的日期控件DateBox很好用的,首先需要引入jquery文件,代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Basic DateBox - jQuery EasyUI Demo</title> <link rel="stylesheet" type="text/cs

  • JS获取页面input控件中所有text控件并追加样式属性

    如题,将使用jquery来在页面加载时获取页面input控件中所有text控件并添加样式. 以前写过的页面上所使用的text控件width属性太小需要改动,改动牵扯页面上所有text的属性,改动每个控件的width感觉会很麻烦,所以就想通过在页面加载的时候将要改动的text找到并添加属性. 首先先写了一个css样式: 复制代码 代码如下: .wid { width:205px; } 在页面加载中所写的代码如下: $("input[type=text]").addClass("

随机推荐