提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:况鱼杰|2020-03-09 10:10:21.997|阅读 386 次
概述:TeeChart for .NET Core组件可以在Razor组件中使用,以将可重用代码添加到您的项目组合中。本文将会回顾两种方法,一种是使用呈现在页面上的静态TeeChart图像,另一种是使用实时Javascripted TeeChart。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
TeeChart for .NET是优秀的工业4.0 WinForm图表控件,官方独家授权汉化,集功能全面、性能稳定、价格实惠等优势于一体。TeeChart for .NET 中文版还可让您在使用和学习上没有任何语言障碍,至少可以节省30%的开发时间。
本文将会回顾两种方法,一种是使用呈现在页面上的静态TeeChart图像,另一种是使用实时Javascripted TeeChart。
配置
添加代码
现在您已经有了构建块,可以开始将图表生成代码添加到新的ChartGen.razor组件文件中。
连接数据并将图表渲染为图像
接下来将添加代码以创建TeeChart并连接到数据。数据是从呈现数据表的页面动态输入的;这样,可以确保每次通话数据同步。
在“ ChartGen”标题之前,在ChartGen.razor页面中添加一些用法。
ChartGen.razor
@using Steema.TeeChart; @using System.IO; @using System.Drawing; @using TeeChartOnBlazor.Data; //the project data
在下面,为新组件添加代码块。用于填充图表并呈现为图像的代码由一种方法组成。该方法接受数据,填充图表并将其呈现为图像,该图像转换为Base64文本,可直接传输到页面上的img标签。
@code { public TaskGetChart(WeatherForecast[] forecasts, int width, int height) { Steema.TeeChart.Chart mChart = new Chart(); Steema.TeeChart.Styles.Bar mBar = new Steema.TeeChart.Styles.Bar(); mChart.Header.Text = "TeeChart in Blazor example"; mChart.Series.Add(mBar); //mBar.FillSampleValues(); foreach (WeatherForecast forecast in forecasts){ int aDate = (int)Math.Truncate(forecast.Date.ToOADate()); //day stamp mBar.Add(aDate, forecast.TemperatureC); } mBar.Origin = 0; mBar.XValues.DateTime = true; //mChart.Axes.Bottom.Labels.Angle = 90; mChart.Axes.Bottom.Increment = Steema.TeeChart.Utils.GetDateTimeStep(DateTimeSteps.OneDay); MemoryStream ms = new MemoryStream(); mChart.Export.Image.JPEG.Width = width; mChart.Export.Image.JPEG.Height = height; mChart.Export.Image.JPEG.Save(ms); Image img = Image.FromStream(ms); String str = Convert.ToBase64String(ms.ToArray()); return Task.FromResult("data:image/bmp;base64," + str); } }FetchData.razor
在FetchData.razor组件文件中,将向图表添加调用,并将html标签放置在html页面中以进行渲染。在代码部分中,填充图表。 设置一个变量并调用chart方法:
@code { WeatherForecast[] forecasts; String chartImage; protected override async Task OnInitializedAsync() { forecasts = await ForecastService.GetForecastAsync(DateTime.Now); ChartGen cGen = new ChartGen(); chartImage = await cGen.GetChart(forecasts, 1200, 300); }
在组件文件的html部分中,在显示数据的关闭表格标签下,添加以下行:
<h3>TeeChart Static Chart Image</h3>
<p><img src="@chartImage" width="100%" /></p>
html引用chartImage变量并显示Chart。通过一个方法,除了添加TeeChart本身之外,没有其他依赖项,您就可以将数据表的内容呈现到Chart。
连接到数据并将Chart呈现为本地Javascript TeeChart
将图表绘制为动态TeeChart javascript对象需要采取一些步骤,但并不特别复杂。一旦设置,就可以增强JavaScript图表,以提供完整的交互性和对数据情况的响应。
首先,将代码方法添加到ChartGen.razor,就在为Image版本设置的方法的下面。
ChartGen.razor
该方法与图表图像格式代码非常相似。添加了一些附加功能,以方便在浏览器中调整图表大小。
public Task GetJSChart(WeatherForecast[] forecasts, int width, int height) { Steema.TeeChart.Chart mChart = new Chart(); Steema.TeeChart.Styles.Bar mBar = new Steema.TeeChart.Styles.Bar(); mChart.Header.Text = "TeeChart in Blazor example"; mChart.Series.Add(mBar); //mBar.FillSampleValues(); foreach (WeatherForecast forecast in forecasts){ int aDate = (int)Math.Truncate(forecast.Date.ToOADate()); //day stamp mBar.Add(aDate, forecast.TemperatureC); } mBar.XValues.DateTime = true; //mChart.Axes.Bottom.Labels.Angle = 90; mChart.Axes.Bottom.Increment = Steema.TeeChart.Utils.GetDateTimeStep(DateTimeSteps.OneDay); chartName = "dynoTeeChart"; mChart.Export.Image.JScript.ChartName = chartName; MemoryStream ms = new MemoryStream(); mChart.Export.Image.JScript.Width = width; mChart.Export.Image.JScript.Height = height; mChart.Export.Image.JScript.DoFullPage = false; //inline, no page header tags mChart.Export.Image.JScript.CustomCode = new string[] { "resize("+chartName+");" }; mChart.Export.Image.JScript.Save(ms); ms.Position = 0; StreamReader reader = new StreamReader(ms); //setup our chart name, here 'dynoChartName'. string result = ""; return Task.FromResult(result); }FetchData.razor
就像为图表的图像版本所做的一样,向组件添加一个字符串变量,调用填充它的方法,并向页面添加html tage以呈现它。 在这种情况下,标记是HTML5 Canvas标记。
<h3>TeeChart Static Chart Image</h3>
<p><img src="@chartImage" width="100%" /></p>
<br />
<br />
<h3>TeeChart Dynamic Javascript Chart</h3>
<canvas id="canvas1" width="1400" height="300" style="border: 1px solid #808080;">
This browser does not seem to support HTML5 Canvas.
</canvas>
@((MarkupString)chartJS)@((MarkupString)(chartResize));
请注意最后的标记@(((MarkupString)chartJS),这是javascript图表变量,运行时为填充的字符串,并带有将字符串保留为原始格式且请勿尝试将其转换为人类可读格式的指令。第二个MarkupString变量添加了Chart调整大小代码。
页面的代码部分现在如下所示:
@code { WeatherForecast[] forecasts; String chartImage; String chartJS; String chartResize; protected override async Task OnInitializedAsync() { forecasts = await ForecastService.GetForecastAsync(DateTime.Now); ChartGen cGen = new ChartGen(); chartImage = await cGen.GetChart(forecasts, 1200, 300); chartJS = await cGen.GetJSChart(forecasts, 1200, 300); chartResize = ""; } }现在,将图表两次作为图像和javascript图表呈现到页面上。
现在已完成了ChartGen.razor和FetchData.razor文件。尽管还需要一些指向TeeChart的javascript源文件的链接,但是无法将脚本链接放入Razor组件中,因此它们需要进入该项目随附的_Host.cshtml文件。
_Host.cshtml file
这些行应进入页面标题:
<script src="//www.steema.com/files/public/teechart/html5/latest/src/teechart.js" type="text/javascript"></script>
<script src="//www.steema.com/files/public/teechart/html5/latest/src/teechart-extras.js" type="text/javascript"></script>
<script src="//www.steema.com/files/public/teechart/html5/latest/src/date.format.js" type="text/javascript"></script>
<script src="//www.steema.com/files/public/teechart/html5/latest/src/teechart-maps.js" type="text/javascript"></script>
<script src="js/utils.js" type="text/javascript"></script>
调整代码大小
请注意脚本参考的最后一行,即指向“ js / utils.js”文件的链接。项目中还没有这个。接下来将在“ wwwroot”文件夹下添加一个名为“ js”的新文件夹,并添加一个名为“ utils.js”的新javascript文件。脚本对其进行调用,以在重新设计的浏览器窗口中管理javascript图表的大小。
utils.js file
当调整浏览器页面本身的大小时,脚本将管理图表的大小调整。下面是内容:
function resize(chart) { var startWidth = 1600; var startHeight = 400; var w; var h; var canvas = chart.canvas; if (chart != null) { if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { w = window.innerWidth; h = window.innerHeight; if (w <= 991) { canvas.style.width = "" + w * 0.9 + "px"; canvas.style.height = "" + w * 0.9 * startHeight / startWidth + "px"; } else { canvas.style.width = "" + startWidth + "px"; canvas.style.height = "" + startHeight + "px"; chart.bounds.width = startWidth; chart.bounds.height = startHeight; } chart.draw(); } else { w = startWidth; h = startHeight; if ((window.innerWidth - canvas.offsetLeft - 20) < startWidth) w = window.innerWidth - canvas.offsetLeft - 20; else w = startWidth; if ((window.innerWidth * startHeight / startWidth) < startHeight) h = window.innerWidth * startHeight / startWidth; else h = startHeight; canvas.setAttribute('width', "" + w + "px"); canvas.setAttribute('height', "" + h + "px"); canvas.style.width = "" + w + "px"; canvas.style.height = "" + h + "px"; chart.bounds.width = w; chart.bounds.height = h; chart.draw(); } } }
通过在_Host.cshtml文件的主体onresize事件中添加调用来调用调整大小。
<body onresize="resizeChart()">
关注慧聚IT微信公众号☟☟☟,了解产品的最新动态及最新资讯。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文将演示如何使用DevExpress WPF Grid控件实现列和带的固定,欢迎下载最新版组件体验!
在本文中,我们将探讨如何通过使用 JxBrowser 和 Quill.js 将现代富文本编辑器嵌入到 Java 桌面应用程序中,来克服 Swing、JavaFX 和 SWT 中内置编辑器的局限性。
Word 文档中的批注通常用于协作审阅和反馈。这些批注可能包含文本和图片,它们为文档改进提供了重要的参考信息。本文将演示如何使用 Spire.Doc for Java 在 Java 中提取 Word 文档中的批注文本和图片。
本文主要介绍如何使用DevExpress WinForms Data Grid组件实现列重新排序,欢迎下载最新版组件体验!
优秀的工业4.0 WinForm图表控件,官方独家授权汉化,集功能全面、性能稳定、价格实惠等优势于一体
Visual Studio适用于.NET、C++、Python和前端开发人员的最佳综合 IDE
TeeChart Pro ActiveX交互性强的轻量级ActiveX图表控件,能高效生成多任务仪表板
TeeChart Pro VCL/FMX支持RAD Studio,Delphi和C ++ Builder以及FireMonkey的图表制作工具
TeeChart for Java适用于所有主流Java编程环境的TeeChart图表库
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢