
请高手赐教!谢谢!!
------解决方案--------------------
提供个思路给你,用Graphics绘制,DrawEllipse画圆,DrawLine画线,DrawString写文字,再用Brush填充
------解决方案--------------------
基本上稍微知名点的第三方Chart控件都能支持。
------解决方案--------------------
这个,确实有点麻烦,我还没见过,可能真要自己画。至于第三方,我经常使用DEV,但DEV没有,可能版本太低的原因,6.x,7.x呵
------解决方案--------------------
自己画的话,不太好看,DX13.1应该有这个功能。就算没有,可以考虑换个样式,效果说不定更好看。
------解决方案--------------------
https://www.devexpress.com/Products/NET/Controls/WinForms/Chart/
------解决方案--------------------
根据不同的颜色先做几个圆形的图片,然后根据百分比和开始位置用代码创建一个圆形图片的一部分,怎么创建可以参考
http://www.neowin.net/forum/topic/571104-vbnet-polygon-from-image/
最后再在中心画一个圆形
顺便把上面链接翻成C#:
private Bitmap Extract(Bitmap bitmap, Point[] points)
{
System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
path.AddPolygon(points);
System.Drawing.RectangleF rectangle = path.GetBounds();
System.Drawing.Drawing2D.Matrix matrix = new System.Drawing.Drawing2D.Matrix(1, 0, 0, 1, -rectangle.X, -rectangle.Y);
path.Transform(matrix);
Bitmap result = new Bitmap((int)rectangle.Width, (int)rectangle.Height);
Graphics g = Graphics.FromImage(result);
g.Clear(Color.Transparent);
RectangleF rect = new RectangleF(0, 0, rectangle.Width, rectangle.Height);
g.Clip = new Region(path);
g.DrawImage(bitmap, rect, rectangle, GraphicsUnit.Pixel);
path.Dispose();
g.Dispose();
return result;
}
在左上角画45%
Image image = new Bitmap(@"XXX.png");
Bitmap bitmap = Extract(this.image, new Point[]{new Point(0, 0), new Point(半径, 0), new Point(半径, 半径)});
e.Graphics.DrawImage(bitmap, 0, 0);