先上效果图:

<UserControl xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts"
mc:Ignorable="d">
<Grid>
<dxc:ChartControl Padding="0"
Background="Transparent"
BorderBrush="Transparent"
CrosshairEnabled="False"
AnimationMode="OnLoad"
>
<dxc:ChartControl.CrosshairOptions>
<dxc:CrosshairOptions CrosshairLabelMode="ShowForNearestSeries" />
</dxc:ChartControl.CrosshairOptions> <dxc:XYDiagram2D x:Name="dragram"
PaneOrientation="Vertical"
EqualBarWidth="True"
>
<dxc:XYDiagram2D.DefaultPane>
<dxc:Pane>
<dxc:Pane.DomainBrush>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#66FFFFFF" Offset="1"/>
<GradientStop Color="#FF466161" Offset="0"/>
<GradientStop Color="#FF7D9090" Offset="0.5"/>
</LinearGradientBrush>
</dxc:Pane.DomainBrush>
</dxc:Pane>
</dxc:XYDiagram2D.DefaultPane>
<dxc:XYDiagram2D.AxisX>
<dxc:AxisX2D>
<dxc:AxisX2D.Label>
<dxc:AxisLabel Angle="-45"
FontSize="18"
Foreground="White"
Visibility="Visible"
x:Name="DXCAxisLabel"
/>
</dxc:AxisX2D.Label>
</dxc:AxisX2D>
</dxc:XYDiagram2D.AxisX>
<dxc:XYDiagram2D.AxisY>
<dxc:AxisY2D FontSize="24"
Brush="White"
Foreground="White"
FontFamily="微软雅黑"
GridLinesVisible="False"
TickmarksVisible="False"
TickmarksMinorVisible="False"
>
<dxc:AxisY2D.Label>
<dxc:AxisLabel FontSize="18"
Staggered="False"
Foreground="White"
Visibility="Visible"
FontFamily="微软雅黑"
/>
</dxc:AxisY2D.Label>
</dxc:AxisY2D>
</dxc:XYDiagram2D.AxisY>
<dxc:BarSideBySideSeries2D x:Name="Series"
BarWidth="0.6"
LabelsVisibility="True"
> <dxc:BarSideBySideSeries2D.Model>
<dxc:BorderlessGradientBar2DModel />
</dxc:BarSideBySideSeries2D.Model> </dxc:BarSideBySideSeries2D>
</dxc:XYDiagram2D>
<dxc:ChartControl.Legend>
<dxc:Legend VerticalPosition="Top"
HorizontalPosition="RightOutside"
FontSize="24"
Orientation="Vertical"
/>
</dxc:ChartControl.Legend>
</dxc:ChartControl>
</Grid>
</UserControl>

后台代码:

using DevExpress.Xpf.Charts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes; namespace Kingo.Land.JCJG.Controls
{
/// <summary>
/// UCChart.xaml 的交互逻辑
/// </summary>
public partial class UCChart : UserControl
{
public UCChart()
{
InitializeComponent();
}
/// <summary>
/// 图表标题
/// </summary>
public string Title
{
get; set;
} /// <summary>
/// 图表统计单位
/// </summary>
public string Unit
{
get; set;
} /// <summary>
/// 图标信息
/// </summary>
public List<ChartData> listChartData
{
get; set;
} /// <summary>
/// 绑定图表
/// </summary>
public void InitData()
{
lblTitle.Content = Title;
//lblUnit.Content = " " + Unit;
dragram.Series.Clear(); foreach (ChartData item in listChartData)
{ BarSideBySideSeries2D entity = new BarSideBySideSeries2D(); entity.ActualLabel.Visible = false;
entity.DisplayName = item.DisplayName;
entity.Brush = item.Brush;
entity.Model = new BorderlessSimpleBar2DModel();
//entity.Label = new SeriesLabel();
//图表增长型的样式
entity.PointAnimation = new Bar2DGrowUpAnimation();
foreach (KeyValuePair<string, double> dic in item.dicPoints)
{
entity.Points.Add(new SeriesPoint { Argument = dic.Key, Value = dic.Value });
} dragram.AxisX = new AxisX2D();
dragram.DefaultPane.AxisXScrollBarOptions = new ScrollBarOptions() { Visible =false };
//dragram.AxisX.Label = new AxisLabel();
//dragram.AxisX.Label.Staggered = true;
DataTemplate myTemplate = (DataTemplate)Resources["AxisXLabelTemplate"];
dragram.AxisX.Label = new DevExpress.Xpf.Charts.AxisLabel() { ElementTemplate = myTemplate, FontSize=, Foreground=new SolidColorBrush(Colors.White) };
dragram.Series.Add(entity);
} }
/// <summary>
/// 绑定图表
/// </summary>
public void InitData1()
{
lblTitle.Content = Title;
//lblUnit.Content = " " + Unit;
dragram.Series.Clear();
foreach (ChartData item in listChartData)
{
BarSideBySideStackedSeries2D entity = new BarSideBySideStackedSeries2D();
entity.DisplayName = item.DisplayName;
entity.Brush = item.Brush;
entity.ActualLabel.Visible = false;
//entity.Label = new SeriesLabel();
//entity.Label.
//图表增长型的样式
entity.PointAnimation = new Bar2DGrowUpAnimation();
foreach (KeyValuePair<string, double> dic in item.dicPoints)
{
SeriesPoint sPoint = new SeriesPoint { Argument = dic.Key, Value = dic.Value, Tag = item.DisplayCode };
entity.Points.Add(sPoint);
} dragram.AxisX = new AxisX2D();
DataTemplate myTemplate = (DataTemplate)Resources["AxisXLabelTemplate"];
dragram.AxisX.Label = new DevExpress.Xpf.Charts.AxisLabel() { ElementTemplate = myTemplate };
dragram.AxisX.Interlaced = true;
dragram.AxisX.Alignment = AxisAlignment.Near;
//dragram.AxisX.ActualLabel.Staggered = true;
dragram.Series.Add(entity);
}
} /// <summary>
/// 图表信息
/// </summary>
public class ChartData
{
/// <summary>
/// 统计的内容
/// </summary>
public string DisplayName { get; set; } public string DisplayCode { get; set; } /// <summary>
/// 内容对应的颜色
/// </summary>
public SolidColorBrush Brush { get; set; } /// <summary>
/// 所有相关内容的地市(地市名称,对应数值)
/// </summary>
public Dictionary<string, double> dicPoints { get; set; }
} private void dragram_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{ } public Action<string> ShowDetails; private void chart_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
Point position = e.GetPosition(chart);
ChartHitInfo hitInfo = chart.CalcHitInfo(position);
if (hitInfo != null && hitInfo.SeriesPoint != null)
{
if (ShowDetails != null)
ShowDetails(hitInfo.SeriesPoint.Argument.ToString());
}
}
} public class WidthToOffsetConverter : MarkupExtension, IValueConverter
{
public WidthToOffsetConverter()
{ }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double width = (double)value;
return -(width * 0.35);
} public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
} public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
}
}

使用方法:

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes; namespace Kingo.Land.JCJG.Controls
{
/// <summary>
/// UCJZJDControl.xaml 的交互逻辑
/// </summary>
public partial class UCJZJDControl : UserControl
{
public UCJZJDControl()
{
InitializeComponent();
this.Loaded += UCJZJDControl_Loaded;
this.btnShow.Click += BtnShow_Click;
} private void BtnShow_Click(object sender, RoutedEventArgs e)
{
this.Visibility = Visibility.Collapsed;
} private void UCJZJDControl_Loaded(object sender, RoutedEventArgs e)
{
InitData();
} private void InitData()
{try
{
#region
dbHelper = Kingo.Common.DBOperator.RDBFactory.CreateDbHelper(System.Configuration.ConfigurationManager.AppSettings["OracleConn"], Kingo.Common.DBOperator.DatabaseType.Oracle);
string sql = @"select * from Table";
System.Data.DataTable dtSource = dbHelper.ExecuteDatatable("tb", sql, true);
if (dtSource == null || dtSource.Rows.Count <= ) return;
chart.listChartData = new List<UCChartControl.ChartData>();
UCChartControl.ChartData data = new UCChartControl.ChartData();
data.DisplayName = "未举证";
data.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF384C56"));
data.dicPoints = new Dictionary<string, double>(); UCChartControl.ChartData data1 = new UCChartControl.ChartData();
data1.DisplayName = "已举证";
data1.Brush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF627373"));
data1.dicPoints = new Dictionary<string, double>(); foreach (DataRow dr in dtSource.Rows)
{
data.dicPoints.Add(dr["MC"].ToString(), Convert.ToDouble(dr["WJZ"].ToString()));
data1.dicPoints.Add(dr["MC"].ToString(), Convert.ToDouble(dr["JZ"].ToString()));
}
chart.listChartData.Add(data);
chart.listChartData.Add(data1);
chart.InitData();
#endregion
}
catch (Exception)
{
throw;
}
finally
{
if (dbHelper != null)
dbHelper.DisConnect();
}
}
}
}

WPF DEV dxc:ChartControl 柱状图的更多相关文章

  1. WPF DEV控件-ChartControl用法

    WPF常用的第三方控件集,DevExpress 下面介绍如何生成Chart界面: <dxc:ChartControl AnimationMode="OnDataChanged" ...

  2. WPF DEV CellTemplateSelector(一个正确使用DevExpress CellTemplateSelector的Demo)

    说明 我在项目中根据需求需要用到WPF Dev CellTemplateSelector时,遇到不少坑.曾一度想要放弃使用模板转换器,但又心有不甘,终于在不断努力下,达到了需求的要求.所以写下来和大家 ...

  3. DevExpress ChartControl 柱状图的使用【转】

    //中心业务平台的“热门岗位信息监测”柱状图 public partial class HotJobInfo : UserControl     {         private object _o ...

  4. C# WinfForm 控件之dev图表 ChartControl

    dev 图表控件 学习连接 新建一个winformApp form1上放一个button 再放一个chartControl Name 为cct 直接上代码 private void button1_C ...

  5. DevExpress中ChartControl柱状图(Bar)用法

    我的数据 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 chartControl1.Series.Clear(); ...

  6. Dev之ChartControl控件(二)— 绘制多重坐标图形

    有时针对一个ChartControl控件可能要设置多个Y轴,进行显示: 以下举个例子:如在一个Chart中显示多个指标项如图: 首先,读取数据,并对左边的Y轴最大和最小值进行设定 IndexSerie ...

  7. Dev之ChartControl控件(一)

    ChartControl控件主要包括Chart Title,Legend,Annotations,Diagram,Series五部分:如图: 1.  用RangeControl控件控制ChartCon ...

  8. WPF DEV实现手风琴效果

    说明 最近用WPF+DevExpress做项目时,需要做一个类似手风琴的效果,效果的界面如下.因为没有现成的控件,需要自定义模板,所以写了一个Demo和大家分享,项目中可以根据实际情况使用.如果你用不 ...

  9. WPF 自定义图表(柱状图,曲线图)

    1.功能 实现图表的数据绑定,动态绑定,属性更改绑定. 本文提供了一种思路. 2.原理 使用canvas绘制,使用反射来确定属性的绑定. 3.效果: 柱状图效果: 曲线图效果: 感谢阅读. 源码地址: ...

随机推荐

  1. AC Challenge(状压dp)

    ACM-ICPC 2018 南京赛区网络预赛E: 题目链接https://www.jisuanke.com/contest/1555?view=challenges Dlsj is competing ...

  2. kafka分区及副本在broker的分配

    kafka分区及副本在broker的分配 部分内容參考自:http://blog.csdn.net/lizhitao/article/details/41778193 以下以一个Kafka集群中4个B ...

  3. python第三方库函数安装

    以安装pillow库为例 第一.在cmd环境中安装. 第二.输入pip -h(注意之间有个空格),会出现下图界面. 第三.输入pip install pillow,就会自动安装第三方库. 注意:这里面 ...

  4. unity3d平铺图片

    using System;using System.Linq;using System.Text;using System.Reflection;using System.Collections;us ...

  5. ceph压力测试结果总结

    万兆网速的ceph分布式存储单虚拟机下的带宽和iops测试结果: 带宽: 写:700-850MB 读:800-900MB iops: 写:15000-20000 读:45000-55000

  6. format 插入一个字符,%d,%n

  7. SpringBoot(三)thymeleaf+JPA+MySql

    接着上一节的 第一步:在pom文件中加入以下代码: <!--JPA--> <dependency> <groupId>org.springframework.boo ...

  8. 2017《JAVA技术》预备作业-计科1502-19-何俏依

    1.阅读邹欣老师的博客,谈谈你期望的师生关系是什么样的? 我期望的师生关系是长辈和晚辈,前辈和后生,朋友与朋友之间的关系,作为晚辈,要尊敬长辈,不能对长辈进行言语攻击和起冲突:作为后生,要谨遵教诲,有 ...

  9. Idea基于maven搭建多模块单体结构项目

    菜鸟教程 一.创建一个公共的父工程: 1.1 创建一个新的maven项目: 1.2 先创建公共的父工程,选择maven骨架: 1.3 配置maven: 1.4 填写groupId.artifactId ...

  10. Python2和Python3关于reload()用法的区别

    Python2 中可以直接使用reload(module)重载模块. Pyhton3中需要使用如下两种方式: 方式(1) >>> from imp >>> imp. ...