Git   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了.NET Charting图例标记大小大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在.NET Windows窗体项目上使用DataVisualizations CharTing控件。 我遇到的问题是,当我打印图表时,图例并没有显示系列标记(实际上它是一种显示,但它看起来像线上较暗的像素)。 当在表单上查看图表时,标记是可见的,尽pipe它们不是很大,并且与系列的MarkerSize值相比似乎没有改变。 但是当图表打印时(在纸上或PDF上),标记不在那里。

此图显示了在表单上查看图表的视图。 正如你所看到的,图例标记是可见的,但仍然没有接近实际系列标记的位置。

.NET Charting图例标记大小

该图显示了同一图表的PDF版本。 如果你眯起眼睛,你可以在图例中心看到较暗的像素。

OutOfMemoryException / ERROR_COMMITMENT_LIMIT与系统中的大量可用内存

如何保持Windows安装对话框在.NET中popup?

.Net使用特殊文件夹符号

在Linux上部署ASP.NET MVC:最佳实践,工具和惊喜

如何在Windows Server 2003上从IIS 6提供文件

.NET Charting图例标记大小

如何修复图例标记,以便在印刷时实际显示并使其变大?

空隙的.NET代码签名的应用程序不会安装/运行

如何检索窗口的最小化,最大化和closuresbutton的大小?

在.NET中获取认的Windows系统颜色

将C#.Net Framework控制台应用程序的源值提供给控制台命令

在禁用wow64redirect之后,“找不到指定的程序”

由于似乎无法控制传奇标记,因此您可能需要创建自定义传奇。 下面是一个如何在Form和PDF查看的例子:

.NET Charting图例标记大小

.NET Charting图例标记大小

我不得不缩小PDF,所以看起来更薄/更轻。

这是一个返回CustomLegend函数

Legend CustomcatloneLegend(Chart chart,Legend oLeg) { Legend newL = new Legend(); newl.Position = oLeg.Position; // copy a few setTings: newl.Docking = oLeg.Docking; newl.Alignment = oLeg.Alignment; // a few numbers for the drawing to play with; you may want to use floats.. int iw = 32; int iw2 = iw / 2; int ih = 18; int ih2 = ih / 2; int ir = 12; int ir2 = ir / 2; int lw = 3; // we want to access the series' colors! chart.ApplyPaletteColors(); foreach (Series S in chart.Series) { // the drawing code is only for linechart and markerstyles circle or square: Bitmap bmp = new Bitmap(iw,ih); using (Graphics G = Graphics.FromImage(bmp)) using (Pen pen = new Pen(s.Color,lw)) using (SolidBrush brush = new SolidBrush(s.Color)) { G.DrawLine(pen,ih2,iw,ih2); if (s.MarkerStyle == MarkerStyle.CirclE) G.FillEllipse(brush,iw2 - ir2,ih2 - ir2,ir,ir); else if (s.MarkerStyle == MarkerStyle.SquarE) G.FillRectangle(brush,ir); } // add a new NamesImage NamedImage ni = new NamedImage(s.Name,bmp); chart.Images.Add(ni); // create and add the custom legend item LegendItem lit = new LegendItem( s.Name,Color.Red,s.Name); newl.CustomItems.Add(lit); } oLeg.Enabled = false; return newL; }

这就是我所说的:

Legend LC = CustomcatloneLegend(chart3,L); chart1.Legends.Add(LC);

一些注意事项:

代码使用chart.ApplyPaletteColors() 。 这是访问Series颜色所必需的。

它还利用了小知识类NamedImage和Chart.Images 。 这是必要的,因为设置Chart任何图像需要一个字符串!

如果你想放大图片,你可能需要使用LegendCells 。 有关示例, 请参阅此处 !

我已经编码图像绘制只有一个ChartType ( Line )和只有两个MarkerStyles 。

有很多方法来定制这些CustomItems 。 查看更多信息

我确实使用了Series.MarkerSize但通过设置ir = s.MarkerSize; 等循环里面!

可能需要从原来的图例中复制一些比我做的更多的设置。 我只是注意到你已经设置了一个Font ..

大佬总结

以上是大佬教程为你收集整理的.NET Charting图例标记大小全部内容,希望文章能够帮你解决.NET Charting图例标记大小所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: