Winforms Chart - 在折线图上绘制允许的区域

2024-05-05

如何在图表上绘制灰色区域(信号的允许范围)?
我使用 Winforms 和标准 MicrosoftSystem.Windows.Forms.DataVisualization类。
它应该是自定义范围,这意味着起始 Y 点不能仅为零。
我在运行时在线获得的点一一得到。

UPDATE:

我尝试了 StripLine - 没问题,但我不知道如何在 2d 中定义起点。可以仅在 X 上设置,也可以仅在 Y 上设置。我尝试使用第二个图表(区域),但这不是我需要的......

UPDATE2:
感谢@Reza Aghaei!

这里的代码效果很好:

void drawAllowedArea(Point startPoint, Point endPoint, PaintEventArgs e)
{
      var l = (float)chart1.ChartAreas[0].AxisX.ValueToPixelPosition(startPoint.X);
      var t = (float)chart1.ChartAreas[0].AxisY.ValueToPixelPosition(endPoint.Y);
      var r = (float)chart1.ChartAreas[0].AxisX.ValueToPixelPosition(endPoint.X);
      var b = (float)chart1.ChartAreas[0].AxisY.ValueToPixelPosition(startPoint.Y);
      var rect = RectangleF.FromLTRB(l, t, r, b);
      using (var br = new SolidBrush(Color.FromArgb(100, Color.Blue))) 
      {
           e.Graphics.FillRectangle(br, rect.X, rect.Y, rect.Width, rect.Height);
      }
      e.Graphics.DrawRectangle(Pens.Red, rect.X, rect.Y, rect.Width, rect.Height);
}

//and use this function in chart1_Paint event:
void chart1_Paint(object sender, PaintEventArgs e)
{
      drawAllowedArea(new Point(20, 50000), new Point(40, 100000), e);
}

更新结束 ---------------------------------------------------------- ----------

万分感谢!


你可以处理Paint的事件Chart控制并在其上绘制一个矩形。要根据 x 轴和 y 轴值获取矩形的坐标,您可以使用ValueToPixelPosition轴的方法。例如:

void chart1_Paint(object sender, PaintEventArgs e)
{
    var l = (float)chart1.ChartAreas[0].AxisX.ValueToPixelPosition(3.7);
    var t = (float)chart1.ChartAreas[0].AxisY.ValueToPixelPosition(45);
    var r = (float)chart1.ChartAreas[0].AxisX.ValueToPixelPosition(7.2);
    var b = (float)chart1.ChartAreas[0].AxisY.ValueToPixelPosition(31);
    var rect = RectangleF.FromLTRB(l, t, r, b);
    using (var br = new SolidBrush(Color.FromArgb(100,Color.Blue)))
        e.Graphics.FillRectangle(br, rect.X, rect.Y, rect.Width, rect.Height);
    e.Graphics.DrawRectangle(Pens.Red, rect.X, rect.Y, rect.Width, rect.Height);
}

以上值只是用于测试的随机值,您应该使用 x 轴和 y 轴的实际值:

  • l:矩形的左侧(从 x 轴)
  • t:矩形的顶部(从 y 轴)
  • r:矩形的右侧(从 x 轴)
  • b:矩形的底部(从 y 轴看)

如果您知道值是 int,则可以将它们转换为int代替float我用它来测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Winforms Chart - 在折线图上绘制允许的区域 的相关文章

  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • 什么可以解释托管堆上超过 5,000,000 个 System.WeakReference 实例?

    我一直在针对生产 ASP NET Web 应用程序运行负载测试 并且看到在堆上创建了大量 System WeakReference 在大约 15 分钟内 负载管理堆内存已飙升至大约 3GB 并且我有大约 5 000 000 个对 Syste
  • .Net应用程序设置路径

    默认情况下 Windows 应用程序设置保存在该目录中 USERPROFILE Local Settings Application Data
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 指针问题(仅在发布版本中)

    不确定如何描述这一点 但我在这里 由于某种原因 当尝试创建我的游戏的发布版本进行测试时 它的敌人创建方面不起作用 Enemies e level1 3 e level1 0 Enemies sdlLib 500 2 3 128 250 32
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 获取没有非标准端口的原始 url (C#)

    第一个问题 环境 MVC C AppHarbor Problem 我正在调用 openid 提供商 并根据域生成绝对回调 url 在我的本地机器上 如果我点击的话 效果很好http localhost 12345 login Request
  • 如何将图像和 POST 数据上传到 Azure 移动服务 ApiController 终结点?

    我正在尝试上传图片and POST表单数据 尽管理想情况下我希望它是json 到我的端点Azure 移动服务应用 我有ApiController method HttpPost Route api upload databaseId sea
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 使用 libcurl 检查 SFTP 站点上是否存在文件

    我使用 C 和 libcurl 进行 SFTP FTPS 传输 在上传文件之前 我需要检查文件是否存在而不实际下载它 如果该文件不存在 我会遇到以下问题 set up curlhandle for the public private ke

随机推荐

  • 适合快速获取和快速删除的java集合

    我想知道是否有一个合适的java接口用于 快速 获取 按索引 和 快速 删除 我所说的 快 是指比O n 编辑 get 方法仅用于从集合中随机选择一个元素 另外 标题应该说 集合 而不是 界面 平衡二叉搜索树具有 O log n 的 获取
  • 为什么我们应该在 jQuery 中使用匿名函数而不是直接使用函数?

    一些 jQuery 方法需要一个函数作为参数 但为了工作 它们应该接收一个匿名函数作为参数 而不是直接接收函数 如下例所示 a on click function retornaNada 而不是 a on click retornaNada
  • 如何使用方法更改类属性?

    我有一个 Django 模型类 它有一些默认属性 我想更改complete通过调用函数来改变变量 class Foo complete False def set complete true complete True 但打电话后set c
  • C++ 使用命名空间来避免长路径

    我仍在学习 C 之前从未真正创建过自己的命名空间 我正在对它们进行试验 虽然我已经完成了大部分工作 但有一件事我似乎仍然无法做到 我希望能够在类中调用静态方法 而无需输入类似的内容NameOfClass method 我认为代码应该如下所示
  • 如何在控制台应用程序中创建可终止的 while 循环?

    我目前正在寻找此 c 控制台应用程序功能的解决方案 我尝试寻找一种创建 while 循环的方法 该循环可以终止下面的代码 但我只得出与中断 while 循环相关的结果或不将其放入 while 循环的解决方案 int P1Choice int
  • Reactjs 中的扩展语法“...this.props”感觉很奇怪

    使用扩展运算符与诸如此类的对象发生反应propsJSX 中似乎没有输出我所期望的内容
  • 云代码:从 URL 创建 Parse.File

    我正在开发一个云代码函数 它使用 facebook graph API 来检索用户的个人资料图片 因此 我可以访问正确的图片 URL 但无法从该 URL 创建 Parse File 这几乎就是我正在尝试的 Parse Cloud httpR
  • 检查一个数据框中的单词是否出现在另一个数据框中(python 3,pandas)

    问题 我有两个数据框 想要删除它们之间的任何重复项 部分重复项 DF1 DF2 Phrases Phrases Little Red Little Red Corvette Grow Your Grow Your Beans James B
  • vm.dirty_ratio 和 vm.dirty_background_ratio 之间的区别?

    我目前正在试验中找到的内核参数 proc sys vm 尤其dirty ratio and dirty background ratio 内核文档对两者都有以下解释 脏背景比例 包含 以包含空闲页面的总可用内存的百分比表示 和可回收页 后台
  • GCC 4.7 字符串文字的源字符编码和执行字符编码?

    Linux x86 64 上的 GCC 4 7 是否具有默认字符编码 用于验证和解码 C 源文件中字符串文字的内容 这是可配置的吗 此外 当将字符串数据从字符串文字链接到输出的数据部分时 它是否具有默认的执行字符编码 这是可配置的吗 在任何
  • Excel VBA 将工作表保存到具有唯一名称的多个文件夹

    感谢您的所有意见 下面的代码是收到的输入的最终结果 我已经对这些错误进行了评论 这些错误直接关系到保存到数组中定义的文件夹中的总体预期结果 Option Explicit Public EngName As String TeamNum A
  • kubernetes nginx ingress 无法将 HTTP 重定向到 HTTPS

    我有一个托管在 Google Cloud 平台中的网络应用程序 该应用程序位于负载均衡器后面 而负载均衡器本身位于入口后面 入口设置了 SSL 证书 并按预期接受 HTTPS 连接 但有一个问题 我无法让它将非 HTTPS 连接重定向到 H
  • 如何在 Android 中使用 KSoap 2

    我刚刚发现 ksoap2 在 Android 应用程序中使用我自己的 asp net Web 服务 我在互联网上发现了一些很棒的资源 并且我已经在 Android 应用程序中实现了我的网络服务 以下是我使用的网络服务的响应 HTTP 1 1
  • 如何在 R 中将 dd/mm/yy 转换为 yyyy-mm-dd

    我有一个向量 其日期值采用这种格式 dd mm yy 例如 27 06 16 我想将其转换为 yyyy mm dd 格式 例如 2016 06 27 以进行逻辑比较 我正在使用这个表达 as Date as character 27 06
  • 类运算符

    我在编写代码时遇到问题 void main Matrix c rows cols rows cols are int numbers c 0 0 2 the line that I m having a problem to do the
  • 有没有办法让 LaTeX 将图形放置在同一页面中作为对该图形的引用?

    我正在使用 LaTeX 和图形环境 我非常熟悉该环境的参数 htbp 而且我通常也熟悉 LaTeX 默认情况下决定将每个图形放在哪里的策略 例如 将图形放置在页面的顶部或底部 我想知道是否有一个包 宏或一些我可以提供的命令 这样如果我有一个
  • 替换javascript中的换行符

    我正在尝试替换实例 r or n我的 json 对象中的字符 br 用于在网站上显示 I tried myString myString replace r n br 但这似乎并没有什么作用 当我用其他东西替换正则表达式时 例如 a 例如
  • R:用不同的颜色将一个 ECDF 绘制在另一个 ECDF 之上

    我有几个累积经验密度函数 我想将它们绘制在彼此之上 以说明两条曲线的差异 正如所指出的在上一个问题中 https i stack imgur com V7fIq png 绘制 ECDF 的函数很简单plot Ecdf 当我阅读精美的手册页时
  • 是否有不是完整网站的卡片/目录应用程序?

    我遇到的每个解决方案似乎都是一个完整的商店 有太多的选项和太多的功能 我可以编写自己的购物车来从前端获得我需要的最小功能 我只是想减少编写复杂后端的时间 我真正想要的是提供产品目录 订单管理等后端功能 同时提供流畅一致的 API 来访问完全
  • Winforms Chart - 在折线图上绘制允许的区域

    如何在图表上绘制灰色区域 信号的允许范围 我使用 Winforms 和标准 MicrosoftSystem Windows Forms DataVisualization类 它应该是自定义范围 这意味着起始 Y 点不能仅为零 我在运行时在线