先上效果图:

<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=24, 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 <= 0) 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();}}}
}

转载于:https://www.cnblogs.com/SeNaiTes/p/10444155.html

WPF DEV dxc:ChartControl 柱状图相关推荐

  1. Dev中ChartControl添加限定线

    1.单击Y轴,设置属性 2.点击ConstantLines属性,打开"Constant Line Collection Editor"界面 3.点击Add添加线条 4.通过设置Ap ...

  2. C# WPF图表控件之ChartControl用法指南①

    " 引言部分,总领全篇文章的中心内容." WPF的DevExpress ChartControl是一种功能强大的可视化工具,可帮助您将数据显示为二维或伪三维条形图.区域.线和许多其 ...

  3. WPF 2020界面开发新纪元——Accordion控件、图表功能升级

    DevExpress WPF Subscription拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序.通过DevExpress WPF能创建有着强大互动功能的XAML基础 ...

  4. wpf devexpress

    背景 winform切为wpf,使用devexpress插件 参考的网站为:https://docs.devexpress.com/WPF/7875/wpf-controls 1.GridContro ...

  5. 【柏拉图】在WPF中利用DevExpress控件进行柏拉图展示

    dx控件版本为15.2 因为17.2在win7系统中可能存在报错 有知道原因的大佬烦请告知一下 <Grid Grid.Column="1"><dxc:ChartC ...

  6. DevExress笔记

    最近用DevExpress的WPF图表控件做柱形图看板,总结记录了一些笔记: 1.显示图例: <dxc:ChartControl.Legend><dxc:Legend />&l ...

  7. C# datagridview、datagrid、GridControl增加行号

    01 - WinForm中datagridview增加行号 在界面上拖一个控件dataGridView1,在datagridview添加行事件中添加如下代码: private void dataGri ...

  8. WPF 自定义BarChartControl(可左右滑动的柱状图)

    WPF 自定义BarChartControl(可左右滑动的柱状图) 原文:WPF 自定义BarChartControl(可左右滑动的柱状图) 自定义可左右滑动.拖拽滑动的平面柱状图 在做这种样式控件之 ...

  9. 使用Telerik控件库制作WPF项目中的折线图、柱状图、饼图和甜甜圈图

    本博客是基于 .Net Framework 4.6.2 的WPF(MVVM)项目,Telerik版本为 2016.2.613.40.其他版本是否可用不详. 本文章所使用数据均为测试数据,无任何意义. ...

最新文章

  1. “算法不行,干啥都不行!”面试官:面试基本都会考这点!
  2. 伤疤好了有黑印怎么办_搞笑gif动态图片:“发现相亲对象的闺蜜更有实力,我后悔了”哈哈哈好一个见色起意...
  3. react部署之页面空白
  4. C和汇编----存储类别、链接和内存管理
  5. Dubbo SPI的基础Cooma微容器
  6. 同r做一个窗口_目标检测(Object Detection):R-CNN/SPPnet/R-FCN/Yolo/SSD
  7. Ubuntu系统下允许Apache的mod_rewrite功能
  8. JS调用ATL DLL
  9. UGUI 优化关于图集,排序等
  10. 图片处理--连环画特效
  11. 递归大总结之斐波那契
  12. 第二空间计算机最新破解,雨过天晴海外版 电脑时光机 - RollBack Rx v10.2.2699597837 多国语言特别版...
  13. 用我的亲身经历来告诉你如何自学Java?
  14. Android进阶之路(快速进阶第二天)RxAndroid使用
  15. 【服务器数据恢复】服务器误删除ESXi虚拟机的数据恢复案例
  16. windows全局消息钩子的一个BUG
  17. 他开发了一款PSVR北美欧洲销量最好的中国游戏,秘诀只有两个字
  18. 关于输入电阻和输出电阻大小的讨论
  19. android gps 差分定位,基于Android的高精度GPS定位与土地测量应用设计
  20. java 下载图片流_java下载图片(通用)httpClient,io流

热门文章

  1. 院士任校长!“东方理工大学” 正式开工!
  2. 系统结构图、程序流程图、数据流图
  3. 科大讯飞语音听写app闪退
  4. [RK3399][Android7.1] 调试笔记 --- 解决开关按键时产生的Pop声
  5. 启用Hadoop集群垃圾箱配置
  6. 中关村2019逆向 Reverse lebel:控制流平坦化 / python字节码分析
  7. Ansible playbook 详解
  8. 基于多目标粒子群算法的冷热电联供型综合能源系统运行优化。 包括燃气轮机,燃气锅炉,电制冷机等设备。
  9. 红帽RHEL7版本RHCE认证学习及考试经历
  10. java代码---------陈勇老师的