wpf 中 chart饼图的一个小问题求指教

qq_22065485 2014-10-16 03:42:03
我在wpf中用chart画了个饼图 当其中数据源中只有一个值得时候 饼图不能显示出来 求指教
...全文
529 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
boqu_2625328407 2014-10-21
  • 打赏
  • 举报
回复
利用饼图分析人力资源情况示例 private void CreateImage() { //连数据库 SqlConnection Con = new SqlConnection(ConfigurationManager.AppSettings["ConSql"]); Con.Open(); string str1 = "select * from tb_manpower"; SqlCommand Com = new SqlCommand(str1, Con); DataSet ds = new DataSet(); SqlDataAdapter Da = new SqlDataAdapter(Com); Da.Fill(ds); Con.Close(); //计算员工总和 string str2 = "SELECT SUM(Employee+SellMan+Director+Manager) AS Number FROM tb_manpower"; SqlDataAdapter Da2 = new SqlDataAdapter(str2, Con); DataSet ds2 = new DataSet(); Da2.Fill(ds2); int Sum = Convert.ToInt32(ds2.Tables[0].Rows[0][0].ToString()); //获取普通员工数目 int employee = Convert.ToInt32(ds.Tables[0].Rows[0][1].ToString()); //获取销售员工数目 int sellman = Convert.ToInt32(ds.Tables[0].Rows[0][2].ToString()); //获取主任数目 int director = Convert.ToInt32(ds.Tables[0].Rows[0][3].ToString()); //获取经理数目 int manager = Convert.ToInt32(ds.Tables[0].Rows[0][4].ToString()); //创建画图对象 int width = 400, height = 450; Bitmap bitmap = new Bitmap(width, height); Graphics g = Graphics.FromImage(bitmap); try { //清空背景色 g.Clear(Color.White); Pen pen1 = new Pen(Color.Red); Brush brush1 = new SolidBrush(Color.YellowGreen); Brush brush2 = new SolidBrush(Color.Blue); Brush brush3 = new SolidBrush(Color.Brown); Font font1 = new Font("Courier New", 16, FontStyle.Bold); Font font2 = new Font("Courier New", 8); g.FillRectangle(brush1, 0, 0, width, height); //绘制背景图 g.DrawString("公司人力资源饼形图", font1, brush2, new Point(80, 20)); //书写标题 //普通员工在饼形图中分配的角度 float angle1 = Convert.ToSingle((360 / Convert.ToSingle(Sum)) * Convert.ToSingle(employee)); //销售员工在饼形图中分配的角度 float angle2 = Convert.ToSingle((360 / Convert.ToSingle(Sum)) * Convert.ToSingle(sellman)); //主任在饼形图中分配的角度 float angle3 = Convert.ToSingle((360 / Convert.ToSingle(Sum)) * Convert.ToSingle(director)); //经理在饼形图中分配的角度 float angle4 = Convert.ToSingle((360 / Convert.ToSingle(Sum)) * Convert.ToSingle(manager)); g.FillPie(Brushes.Beige, 50, 100, 100, 100, 0, 360); g.FillPie(brush2,50 , 100,100 ,100 , 0, angle1); //绘制普通员工所占比例 g.FillRectangle(brush2, 50, 220, 20, 10); //绘制小矩形 g.DrawString("普通员工" + Convert.ToSingle(employee) * 100 / Convert.ToSingle(Sum) + "%", font2, brush2, 80, 220); g.FillPie(Brushes.Beige, 200, 100, 100, 100, 0, 360); g.FillPie(brush3, 200, 100, 100, 100, 0, angle2); //绘制销售员工所占比例 g.FillRectangle(brush3, 200, 220, 20, 10); //绘制小矩形 g.DrawString("销售员工" + Convert.ToSingle(sellman) * 100 / Convert.ToSingle(Sum) + "%", font2, brush3, 230, 220); g.FillPie(Brushes.Beige, 50, 260, 100, 100, 0, 360); g.FillPie(Brushes.BlueViolet, 50, 260, 100, 100, 0, angle3); //绘制普通员工所占比例 g.FillRectangle(Brushes.BlueViolet, 50, 380, 20, 10); //绘制小矩形 g.DrawString("主任" + Convert.ToSingle(director) * 100 / Convert.ToSingle(Sum) + "%", font2, Brushes.BlueViolet, 80, 380); g.FillPie(Brushes.Beige, 200, 260, 100, 100, 0, 360); g.FillPie(Brushes.Black, 200, 260, 100, 100, 0, angle4); //绘制销售员工所占比例 g.FillRectangle(Brushes.Black, 200, 380, 20, 10); //绘制小矩形 g.DrawString("经理" + Convert.ToSingle(manager) * 100 / Convert.ToSingle(Sum) + "%", font2, Brushes.Black, 230, 380); }//codego.net/tags/1/1/ catch (Exception md) { Response.Write(md.Message); } System.IO.MemoryStream ms = new System.IO.MemoryStream(); bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType = "image/Gif"; Response.BinaryWrite(ms.ToArray()); }
快乐起航2020 2014-10-16
  • 打赏
  • 举报
回复
web项目里面运用的
快乐起航2020 2014-10-16
  • 打赏
  • 举报
回复
求图,求代码,这个好像很简单的,我刚做,dotnetcharting做得
qq_22065485 2014-10-16
  • 打赏
  • 举报
回复
没有大神吗难道

4,819

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧