Winform & Devexpress Chart使用入门

一、Chart(Winform)

使用图表控件(chart)首先要理解图表区域(ChartArea)、XY轴(AxisX、AxisY)、数据点(Series)、标题(Title)、图例(Legend)这几个之间的层次关系。

图1:柱形图

从图1可以中内容,可以对Chart控件的组成有了一个简单的了解。

1.图表区域(ChartArea)

从图1中可以看出数据点、XY轴都是属于ChartArea的,这里是主要数据展示的区域。

2.XY轴(AxisX、AxisY)

XY轴的作用不用多说,具体的设置可以参考Demo中的代码。

3.数据点(Series)

圆饼图、散点图、柱形图等等都是由Series的属性设置的。

4.标题(Title)、图例(Legend)

这个作用不多说了,主要是进行一些相关属性的设置。

上点代码:

 1         /// <summary>
 2         /// 饼图
 3         /// </summary>
 4         private void ChartPie()
 5         {
 6             //ChartArea
 7             ChartArea chartArea = new ChartArea()
 8             {
 9                 Name = "PieArea",
10                 BorderWidth = 0,
11                 BorderDashStyle = ChartDashStyle.NotSet,
12             };
13             chartBar.ChartAreas.Clear();
14             chartBar.ChartAreas.Add(chartArea);
15             //Series
16             Series seriesBookA = new Series()
17             {
18                 ChartArea = "PieArea",
19                 Name = "书籍A销量",
20                 Color = Color.Red,
21                 Legend = "LegendBook",
22                 Tag = "BookASaleCount",
23                 ChartType = SeriesChartType.Pie,
24                 XAxisType = AxisType.Primary,
25                 XValueType = ChartValueType.DateTime,
26                 IsValueShownAsLabel = true,
27                 Label = "#VALY(#PERCENT{P0})",
28             };
29             chartBar.Series.Clear();
30             chartBar.Series.Add(seriesBookA);
31             //Point
32             double[] value = { 580 };
33             DataPoint dataPoint = new DataPoint()
34             {
35                 Name = "书籍A销售量",
36                 Color = Color.Red,
37                 YValues = value,
38                 LegendText = "书籍A销售量:" + value[0],
39             };
40             if (chartBar.Series.Count > 0)
41             {
42                 chartBar.Series[0].Points.Clear();
43                 chartBar.Series[0].Points.Add(dataPoint);
44                 value = new double[] { 700 };
45                 chartBar.Series[0].Points.Add(new DataPoint()
46                 {
47                     Name = "书籍B销售量",
48                     Color = Color.Blue,
49                     YValues = value,
50                     LegendText = "书籍B销售量:" + value[0],
51                 });
52                 value = new double[] { 300 };
53                 chartBar.Series[0].Points.Add(new DataPoint()
54                 {
55                     Name = "书籍C销售量",
56                     Color = Color.Pink,
57                     YValues = value,
58                     LegendText = "书籍C销售量:" + value[0],
59                 });
60             }
61             //Title
62             Title mainTitle = new Title()
63             {
64                 Name = "MainTitle",
65                 Text = "书籍销量",
66                 Font = new Font("微软雅黑", 12, FontStyle.Regular, GraphicsUnit.Pixel),
67                 ForeColor = Color.Blue,
68                 Docking = Docking.Top,
69                 IsDockedInsideChartArea = true,
70             };
71             chartBar.Titles.Clear();
72             chartBar.Titles.Add(mainTitle);
73             //Legend
74             Legend legend = new Legend()
75             {
76                 Name = "LegendBook",
77                 LegendStyle = LegendStyle.Table,
78                 Docking = Docking.Bottom,
79             };
80             chartBar.Legends.Clear();
81             chartBar.Legends.Add(legend);
82         }

二、ChartControl(Devexpress)

Dev的ChartControl用法和 Winform的类似,但是更为灵活

具体代码可以单击下载。

时间: 2024-10-27 09:06:01

Winform & Devexpress Chart使用入门的相关文章

[WinForm][DevExpress]自定义GridControl中按钮文字内容

最近项目开发中,使用到了GridControl的FindPanel,这样可以很好的对数据进行筛选,可是所展现的按钮文字是英文,如图: 那怎么定义两个按钮问题,以符合项目需求了?经过一番搜索发现利用GridLocalizer可以很好实现: 核心代码: public class BuilderGridLocalizer : GridLocalizer { Dictionary<GridStringId, string> CusLocalizedKeyValue = null; /// <su

[WinForm][DevExpress][GridControl]CustomColumnDisplayText Helper

在实际开发中,有时候需要对GridControl中列值进行转义,譬如1转义成完成等等,一般在诸如CustomColumnDisplayText事件中能够轻松完成,为了提高代码复用性,所以对CustomColumnDisplayText进行包装 关键代码: /// <summary> /// CustomColumnDisplayText Helper /// </summary> /// <param name="girdview">GridView

[WinForm][DevExpress][TreeList]向上递归,获取公共父节点

最近项目开发中,需要获取到公共节点,如图: 譬如,当点击"Test103-2"节点,其类型是"灯"类型,那怎么获取到"中心区域"这个类型是"地域"的公共节点了?(不知道描述清楚木有哈) 核心代码: /// <summary> /// 向上递归,获取符合条件的父节点 /// </summary> /// <param name="node">需要向上递归的节点</pa

[WinForm][DevExpress]设置TreeListNode的背景色

关键代码: /// <summary> /// 设置节点背景色 /// 在NodeCellStyle事件中使用 /// </summary> /// <param name="tree">TreeList</param> /// <param name="e">GetCustomNodeCellStyleEventArgs</param> /// <param name="bui

[WinForm][DevExpress][TreeList]节点互斥

关键代码: /// <summary> /// 节点互斥同步 /// 说明 /// eg: ///TreeListNode _node = e.Node; ///_node.SyncMutexNodeCheckState(_node.CheckState, n => n.GetNodeType() == NodeType.Cab); /// </summary> /// <param name="node">需要互斥同步的节点</para

[WinForm][DevExpress][TreeList]父子节点CheckState状态同步

关键代码: /// <summary> ///同步父子节点勾选状态 ///说明 ///在AfterCheckNode事件中使用代码 ///eg:e.Node.SyncNodeCheckState(e.Node.CheckState); /// </summary> /// <param name="node">需要同步的节点</param> /// <param name="check">节点当前勾选状态&

[WinForm][DevExpress][TreeList]条件隐藏节点CheckBox

关键代码: /// <summary> /// 隐藏CheckBox /// 说明 /// 在CustomDrawNodeCheckBox事件中使用 /// eg: /// TreeList _curTree = (TreeList)sender; /// _curTree.HideCheckBox(n => n.GetNodeType() == NodeType.Area || n.GetNodeType() == NodeType.CabsGroupRoot, e); /// <

[WinForm][DevExpress]设置TreeList图片节点背景色

关键代码: /// <summary> /// 设置图片节点的背景色 /// 说明:在CustomDrawNodeImages事件中使用 /// </summary> /// <param name="tree">TreeList</param> /// <param name="e">CustomDrawNodeImagesEventArgs</param> /// <param nam

[WinForm][DevExpress][TreeList]向上递归,获取符合条件的父节点

关键代码: /// <summary> /// 向上递归,获取符合条件的父节点 /// </summary> /// <param name="node">需要向上递归的节点</param> /// <param name="conditionHanlder">判断条件[委托]</param> /// <returns>符合条件的节点[TreeListNode]</return