「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?(一)

LightningChart .NET完全由GPU加速,并且性能经过优化,可用于实时显示海量数据-超过10亿个数据点。 LightningChart包括广泛的2D,高级3D,Polar,Smith,3D饼/甜甜圈,地理地图和GIS图表以及适用于科学,工程,医学,航空,贸易,能源和其他领域的体绘制功能。

立即申请LightningChart .NET试用

WPF中的表格

在本文中,我们将创建一个带有数据注释的图表,这是一个探索具有两个 Y 轴的点线系列的好机会。

另一方面,数据注释是LightningChart.NET的另一个出色功能。有了它们,我们可以在图表上直接创建数据表,让用户能够与该表的一些可视属性进行交互。注释表可以显示多个值,并且可以使用 C# 代码、利用 For 循环和其他编程工具轻松创建。

使用注释类似于使用 HTML 表,本质上,您创建一个父AnnotationXY对象,然后添加嵌套AnnotationXY对象作为单元格,配置字体、颜色和边框等视觉属性与分配 CSS 属性非常相似。

什么是 LightningChart 的 WPF 图表?

LightningChart 的 WPF 图表(称为 LightningChart for WPF)是一款功能强大的数据可视化工具,专为 Microsoft Windows Presentation Foundation (WPF) 设计,这些WPF 图表(通常称为 WPF 图表)可以轻松集成到您的 Microsoft Visual Studio 工具箱中。

您可以使用拖放、XAML 或代码隐藏将它们添加到您的软件项目中。添加后,WPF 图形将成为 Windows 桌面应用程序中用户界面 (UI) 的关键部分,使其成为软件开发人员的宝贵工具。

什么是 WPF?

Windows Presentation Foundation (WPF) 是一个用于创建具有复杂用户界面的应用程序的框架。它由两个主要组件组成:标记(用于定义结构和外观)和代码隐藏(用于管理应用程序的逻辑和行为)。

项目概况

今天我们将使用LightningChart .NET 图表组件在 WPF 中创建表格。

「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?

标记

标记使我们能够构建具有各种控件的用户界面,同时能非常精确地管理应用程序中的显示结果。此界面开发是使用 XAML(可扩展应用程序标记语言)完成的。虽然它最初看起来像一个 XML 模板,但 XAML 专门用于构建应用程序界面,而不仅仅是在应用程序之间交换数据。

界面的数据、图形和动画可以从外部源文件中提取,也可以通过后台代码动态生成。

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Title="Window with Button"
Width="250" Height="100">
<!-- Add button to window -->
<Button Name="button">Click Me!</Button>
</Window>

一些控件的创建几乎与 HTML 标签的创建相同,而在其他情况下,样式等属性仅限于标签内属性的声明。

后台代码

后台代码是指包含可执行代码的文件,负责读取、生成和处理用户所需的结果。其主要目的之一是将图形界面代码(如 XAML、HTML、CSS 等)与可执行代码分离,这种分离使我们能够将工作分为用户界面设计和底层代码的开发,从而实现更安全、更有条理和更快速的开发。

对于 WPF(Windows Presentation Foundation),我们使用 C# 编程语言。C# 是一种面向对象/组件的语言,非常适合这种方法。LightningChart .NET 使用可执行的 C# 代码生成 WPF 项目,在此代码中,您可以使用 LightningChart .NET 自己的工具,如果安装了 LC .NET 框架,则可以轻松导入这些工具。

本地设置

对于这个项目,我们需要考虑以下要求来编译项目。

  1. 操作系统:32位或64位Windows Vista或更高版本,Windows Server 2008 R2或更高版本。
  2. DirectX:9.0c(Shader model 3 及更高版本)或 11.0 兼容图形适配器。
  3. Visual Studio:2010-2019 用于开发,不需要部署。
  4. 平台.NET Framework:安装 4.0 或更新版本。

现在转到下一个 URL 并下载 LightningChart .NET,然后您将被重定向到登录表单,必须在其中完成一个简单的注册过程才能访问您的 LightningChart 帐户。

「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?

登录您的帐户后,您可以下载 SDK“免费试用”版本,该版本允许您使用本WPF教程中表格的重要功能。下载 SDK 后,您将获得一个如下所示的 .exe 文件:

「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?

安装将是典型的 Windows 过程,因此请继续进行,直到完成。安装完成后,您将看到以下程序:

「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?

Visual Studio 项目

LightningChart 可视化工具与 Visual Studio 的主要区别在于,我们可以在源代码中分析和试验许多功能。在 LC 可视化工具中,选择“注释表格图表”示例并运行它:

「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?

在窗口的右上角,您将看到以下选项:

「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?

SDK 试用版允许我们使用 WPF 框架,选择正确的框架后,需要指定一个文件夹,用于在 WPF 图表项目中创建表格:

「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?

创建项目后,Visual Studio 将打开并准备执行。

「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?

XAML 代码审查

主 XAML 代码将包装在MainWindow.xaml.cs中,并包含球体 GUI 控件的代码。

「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?

在代码中,我们将检查两种方法来创建在 WPF 中正确绘制表格所需的属性。交互式示例由各种用户控件构建,用于操作和更改图表的视觉属性。这些控件不是生成此图表所必需的,因此我们将重点介绍负责生成对象的代码。

CreateChart()

此方法将负责配置我们的图表,添加轴、组、颜色等,将创建我们的图表:

// Create a new chart.
_chart = new LightningChart();
_chart.BeginUpdate();

BeginUpdate函数将允许我们停止绘制图表,这将允许设置想要自定义的属性,现在将为WPF图表中的表格分配一个标题:

_chart.ViewXY.DataCursor.Visible = true;
//Chart name
_chart.ChartName = "Annotations table chart";

属性DataCursor(true),显示一个小型数据表,其中包含光标指向处的值。

「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?

如果值为 false,则不会显示此数据表。如果需要,我们可以在图表中显示图例框。如果值为 false,则图例框将被隐藏。

//Hide legend box
_chart.ViewXY.LegendBoxes[0].Visible = false;
轴设置

要访问 X 轴,只需从 XAxes 列表中选择索引零。由于我们仅使用具有单个 X 轴的图表,因此默认情况下会将其分配给索引零:

// Configure x-axis.
AxisX xAxis = _chart.ViewXY.XAxes[0];
xAxis.SetRange(0, 100);
xAxis.ScrollMode = XAxisScrollMode.None;
xAxis.ValueType = AxisValueType.Number;

范围是从 0 到 100:

「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?

滚动模式为我们提供了 5 种滚动 X 轴的行为选项:

  • None: X 轴不自动滚动。
  • Scrolling: 当滚动位置接近图形末尾时,X 轴将会滚动。
  • Stepping: 当滚动位置到达图形末尾时,使用Step移动视图。
  • Sweeping: 以前的痕迹将留在背景中,新的痕迹将被清除。
  • Triggering: X 轴最小值和最大值由检测到的水平触发位置。
_chart.ViewXY.YAxes.Clear(); // Remove existing y-axes.
AxisY yAxisTemperature = new AxisY(_chart.ViewXY);
yAxisTemperature.Title.Text = "Temperature, °C";
yAxisTemperature.SetRange(-30, 50);
yAxisTemperature.AxisColor = TemperatureColor;
yAxisTemperature.Title.Color = TemperatureColor;
_chart.ViewXY.YAxes.Add(yAxisTemperature);

我们可以使用Clear函数清除 X 或 Y 轴,当需要更新轴范围或视觉属性时,这非常有用,颜色在代码开头指定。

private static Color TemperatureColor = Colors.DarkOrange;
private static Color HumidityColor = Colors.Red;

我们可以有多个轴,在本例中我们创建另一个 Y 轴,它将显示在图表的右侧,该轴将指示湿度百分比:

AxisY yAxisHumidity = new AxisY(_chart.ViewXY);
yAxisHumidity.Title.Text = "Humidity, %";
yAxisHumidity.SetRange(0, 100);
yAxisHumidity.MajorGrid.Visible = false;
yAxisHumidity.MinorGrid.Visible = false;
yAxisHumidity.AxisColor = HumidityColor;
yAxisHumidity.Title.Color = HumidityColor;
_chart.ViewXY.YAxes.Add(yAxisHumidity);

第二轴的设置与上一个轴相同,水平网格线绘制在刻度线的垂直位置上。主网格用于主刻度线,次网格用于次刻度线,使用MajorGrid和MinorGrid属性编辑外观。

_chart.ViewXY.AxisLayout.YAxisAutoPlacement = YAxisAutoPlacement.LeftThenRight;

YAxisAutoPlacement = LeftThenRight轴分布在图形的左侧和右侧,从左侧开始,每隔一个轴分布在对侧。

未完待续,更多精彩下期见......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/467407.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙进阶篇-网格布局 Grid/GridItem(二)

hello大家好&#xff0c;这里是鸿蒙开天组&#xff0c;今天让我们来继续学习鸿蒙进阶篇-网格布局 Grid/GridItem&#xff0c;上一篇博文我们已经学习了固定行列、合并行列和设置滚动&#xff0c;这一篇我们将继续学习Grid的用法&#xff0c;实现翻页滚动、自定义滚动条样式&…

SpringBoot框架:共享汽车管理的创新工具

5系统详细实现 5.1 管理员模块的实现 5.1.1 用户信息管理 共享汽车管理系统的系统管理员可以管理用户&#xff0c;可以对用户信息修改删除以及查询操作。具体界面的展示如图5.1所示。 图5.1 用户信息管理界面 5.1.2 投放地区管理 系统管理员可以对投放地区信息进行添加&#…

uniapp上拉刷新下拉加载

方法一&#xff1a; z-paging 的组件库&#xff1a; show-loading-more-no-more-view"false" 该属性控制是否显示 "加载更多" 或 "没有更多" 的提示。如果设为 false&#xff0c;则不会显示这些提示。如果设为 true&#xff0c;当数据加载完毕…

【Pikachu靶场:XSS系列】xss之过滤,xss之htmlspecialchars,xss之herf输出,xss之js输出通关啦

一、xss之过滤 <svg onloadalert("过关啦")> 二、xss之htmlspecialchars javascript:alert(123) 原理&#xff1a;输入测试文本为herf的属性值和内容值&#xff0c;所以转换思路直接变为js代码OK了 三、xss之href输出 JavaScript:alert(假客套) 原理&#x…

微分段如何防止勒索软件攻击

微分段通过隔离关键资产、限制网络横向移动、提供细粒度的最小特权访问、实现快速隔离、简化恢复、提高网络弹性以及减少爆炸半径来防止勒索软件攻击。 勒索软件攻击已成为各种规模的组织面临的越来越危险的威胁。 勒索软件利用横向移动技术来感染和加密尽可能多的端点和服务…

后端Node学习项目-项目基础搭建

前言 各位好&#xff0c;我是前端SkyRain。最近为了响应公司号召&#xff0c;开始对后端知识的学习&#xff0c;作为纯粹小白&#xff0c;记录下每一步的操作流程。 项目仓库&#xff1a;https://gitee.com/sky-rain-drht/drht-node 因为写了文档&#xff0c;代码里注释不是很…

SQL server 中 CROSS APPLY的使用

CROSS APPLY 是 SQL Server 中的一个操作符&#xff0c;用于将一个表表达式&#xff08;如子查询、函数等&#xff09;与外部表进行连接。CROSS APPLY 类似于 INNER JOIN&#xff0c;但它允许你在一个查询中多次引用外部表的行&#xff0c;并且可以动态地生成结果集。 基本语法…

低空经济之星eVTOL研发技术详解

低空经济之星eVTOL&#xff08;Electric Vertical Take-off and Landing&#xff09;是一种采用储能电池、电机驱动以及螺旋桨推进方式&#xff0c;并具备垂直起降功能的新型航空器。以下是对eVTOL研发技术的详解&#xff1a; 一、技术特点 1. 分布式推进系统 结构简单性与轻…

算法每日双题精讲——双指针(快乐数,盛最多水的容器)

&#x1f31f;快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 &#x1f31f; 别再犹豫了&#xff01;快来订阅我们的算法每日双题精讲专栏&#xff0c;一起踏上算法学习的精彩之旅吧&#xff01;&#x1f4aa;…

【c++ gtest】使用谷歌提供的gtest和抖音豆包提供的AI大模型来对代码中的函数进行测试

【c gtest】使用谷歌提供的gtest和抖音豆包提供的AI大模型来对代码中的函数进行测试 下载谷歌提供的c测试库在VsCode中安装抖音AI大模型找到c项目文件夹&#xff0c;使用VsCode和VS进行双开生成gtest代码进行c单例测试 下载谷歌提供的c测试库 在谷歌浏览器搜索github gtest, 第…

数据库SQLite的使用

SQLite是一个C语言库&#xff0c;实现了一个小型、快速、独立、高可靠性、功能齐全的SQL数据库引擎。SQLite文件格式稳定、跨平台且向后兼容。SQLite源代码属于公共领域(public-domain)&#xff0c;任何人都可以免费将其用于任何目的。源码地址&#xff1a;https://github.com/…

【大咖云集,院士出席 | ACM独立出版】第四届大数据、人工智能与风险管理国际学术会议 (ICBAR 2024,11月15-17日)--冬季主会场

第四届大数据、人工智能与风险管理国际学术会议 (ICBAR 2024)--冬季主会场 2024 4th International Conference on Big Data, Artificial Intelligence and Risk Management 官方信息 会议官网&#xff1a;www.icbar.net 2024 4th International Conference on Big Data, Art…

图像算法之 OCR 识别算法:原理与应用场景

一、引言 在当今数字化时代&#xff0c;图像信息的处理和识别变得越来越重要。光学字符识别&#xff08;Optical Character Recognition&#xff0c;OCR&#xff09;算法作为一种能够将图像中的文字转换为可编辑文本的技术&#xff0c;正广泛应用于各个领域。从文档数字化到自…

SQLite的BLOB数据类型与C++二进制存储学习记录

一、BLOB数据类型简介 Blob&#xff08;Binary Large Object&#xff09;是一种用于存储二进制数据的数据类型&#xff0c;在数据库中常用于存储图片、音频和视频等大型&#xff08;大数据量&#xff09;的二进制数据[1-2]。需要注意的是&#xff0c;SQLite中BLOB类型的单对象最…

python基础——05函数

一、函数 1.1 函数定义 函数定义&#xff1a;实现特定功能的代码块 函数的作用&#xff1a; 简化代码提高代码重用性便于维护和修改可提高代码的可拓展性 函数三要素&#xff1a;功能、参数、返回值 函数定义的语法格式&#xff1a; 函数分类&#xff1a; 从定义的角度—…

[Redis] Redis哨兵机制

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

【Eclipse系列】eclipse安装与常规配置(含插件)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、下载与安装 二、常规设置 1.1.设置工作空间(workspace) 1.2.设置字体和字体大小 ​编辑 1.3.设置编码 1.4.去除验证(validation) 1.5.去除单词验证(spelli…

注册登录学生管理系统小项目

头文件 #ifndef _LOGINLINK_H_ #define _LOGINLINK_H_ #include<myhead.h> typedef struct {int id;char name[20];int age; }stu,*Pstu; typedef struct node {union{int len;stu data;};struct node *next; }node,*Pnode; int regist(); int login(); Pnode create()…

【在clion中构建python interpreter环境用于debug fastlio2】

在CLION中构建python interpreter环境 数据包在clion中构建python interpreter环境 数据包 数据包链接&#xff1a;fastlio2_ros2 在clion中构建python interpreter环境 通过clion中的remote development 通过SSH远程构建fastlio2 workspace 打开远程clion工作空间后&#x…

HTML+CSS基础【快速上手】

目录 一、HTML展示 1、HTML基础结构 2、认识元素属性 &#xff08;1&#xff09;元素属性理解 &#xff08;2&#xff09;实例 3、自结束标签和注释 &#xff08;1&#xff09;自结束标签 &#xff08;2&#xff09;注释 4、语义化标签 &#xff08;1&#xff09;语义…