问题标签 [microsoft-chart-controls]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1031 浏览

microsoft-chart-controls - 向 Microsoft Chart Controls 图表添加页脚

是否可以在使用 Microsoft Chart Controls for .net 4 创建的图表中添加页脚线。我想在左侧放置一个徽标(png-image),在该行的右侧放置一个文本。

作为一种可能性,我想到在渲染图表或设置背景图像后将页脚添加到结果图像中,但也许我错过了一个集成的更好的可能性?

0 投票
1 回答
3057 浏览

c# - 在同一张图表上同时绘制两个不同的图表

我正在使用 MSChart 控件来绘制一些数据,但我想在同一个图表上同时绘制两个不同的图表。例如,将条形图 (series1) 与饼图 (series2) 结合使用

我正在尝试使用以下代码使用一个图表显示两个不同的图表它显示的数据正确,但一个问题是我想显示两个图表(饼图,条形图)但它正在显示(“两个饼图” )

有人可以帮忙吗

注意:我为所有这些操作使用一张图表

0 投票
2 回答
3180 浏览

.net - 如何在 asp.net 中为 Microsoft Chart Control 生成的图像设置分辨率 (DPI)

如何为 .net 的 microsoft chart 控件创建的图像定义图像分辨率(以 DPI 为单位)(用于创建 .png 图像)。

图表控件的 winforms 版本具有Chart.RenderingDpi[X|Y]-属性,但是对于 asp.net 控件,我找不到这样的属性。

有人可以引导我找到解决方案吗?

更新
在寻找解决方案的过程中,我看到图表控件有一个画图方法。有了这个,我可以用其他 DPI 设置创建图像。我不确定这是否是正确的方法,但结果对我来说似乎还不错。我已经发布了代码作为答案。如果有人有更简洁的解决方案,请告诉我。

0 投票
1 回答
445 浏览

.net - MSChartControl 选择时的奇怪行为

我在我的应用程序中使用 MSChartControl。在图表控件中,我显示了一个图像,我想使用图表控件的选择机制从 ChartArea 中使用 CursorX 选择图像范围。

在 SelectionRangeChanged 事件中,我想在用户完成选择时得到通知,然后我想为尚未选择的区域着色并隐藏原始选择。

由于没有 ClearSelection (至少我还没有找到这样的方法),我将选择设置为 Cursor 在没有选择时最初具有的值:

在绘画方法中,我自己绘画。

除非我调整窗口和图表控件的大小,否则这似乎可行。

1)我启动窗口,然后选择一些东西 2)我调整图表控件的大小(更大/更小无关紧要) 3)我做另一个选择

-> 结果是,显然控件在内部缓冲了一些图形,并向我显示了我在调整控件大小之前的大小的图表。

如果我注释掉该行

有用。但是我将如何清除选择呢?

谢谢马丁

0 投票
0 回答
493 浏览

c# - 如何在 Microsoft 图表控件中从 x 轴省略一个时间段

我正在 Visual Studio 中开发一个 Windows 应用程序,使用 c#、.Net Framework 4 进行编码。

在图表上,我绘制了股票价格的日内时间序列。当我绘制一天时,它工作正常。但是,当我绘制多天时,市场一天的收盘时间和第二天的开盘时间之间存在巨大差距。系列点不包括市场时间以外的任何数据。即 2011 年 8 月 10 日的最后一个数据点和 2011 年 8 月 11 日的第一个数据点如下:

2011 年 8 月 10 日下午 3:59,59.00 美元

2011 年 8 月 11 日晚上 9:30,59.25 美元

我想省略那个空的时间段。非常感谢任何帮助。

(抱歉,因为没有 10 的声望,所以不能发布图表的图像,但希望你能发挥你的想象力!)

0 投票
2 回答
1152 浏览

c# - 仅当页面具有母版页时,在 IE 中单击 Microsoft Chart Control 时图像映射才可见

在此处输入图像描述

如果您仔细查看上图,您会看到 Microsoft 图表控件上呈现了一个点击框。当我单击 Microsoft 图表控件上的数据点时,将显示此内容。DataPoint 定义了一个回发值,并且 Chart 实现了其 On_Click 事件处理程序。我可以通过右键单击或左键单击来渲染此图像映射。

我的设置是这样的:

  • 完全空的 .aspx 基页,除了它有一个母版页。母版页设置有点独特,因为有一个“WebForms”母版页和一个“Root”母版页。“WebForms”母版页继承自“Root”母版页。这是因为我将 ASP.NET AJAX 页面集成到 MVC 解决方案中。我在任何其他浏览器中都没有遇到此设置的问题。(另外,在测试期间,我删除了对中间 MasterPage 的依赖——问题仍然存在。我有信心说母版页的层次结构不是这个问题的根源。)
  • MasterPageFile="~/Views/Shared/WebForm.master" 是我的基本页面上的 MasterPage 声明。

WebForm MasterPage 看起来有点像这样:

还有其他内容占位符,但我相信这是唯一相关的。请注意,我已将这个占位符包装在起始表单标签中。这使我可以像 MVC 一样将“表单”标签与 Html.StartForm() 和 EndForm() 分开。

Root.Master:

再一次,还有其他占位符,但我相信这些是唯一相关的。我已禁用页面上的所有 CSS,但我仍然看到这种情况发生。

所以.. 我可以假设的是,在这种情况下,图像映射的客户端 ID 没有得到正确处理。UniqueID 因存在内容占位符这一事实而被修改。请看以下内容:

我对 Web 开发比较陌生。我有哪些选项可以进一步调试或修补问题?我在黑暗中射击子弹,以便偶然发现是母版页介绍了这个问题。

感谢您的阅读和您的时间。干杯。

编辑:它发生在启用或禁用兼容模式的情况下。我将表单标签移动到我的基本页面的内容占位符内,并且没有发现任何差异。

EDIT2:我还删除了中间母版页。我觉得这可能是一个很大的问题来源,但是这个问题仍然出现在只使用一个母版页的情况下。

TL;DR:当我的图表控件位于 ContentPlaceHolder 内部时,我可以在左键或右键单击包含图像映射的区域时看到图像映射。这只发生在 Internet Explorer 下。

(赏金后编辑):

  • 我尝试使用 Ryan Ternier 提供的 CSS 代码片段来重置 CSS。我使用下面的代码片段引用了它。Dashboard.css 的内容是 Ryan 提供的代码片段。没有效果。

    /li>
  • 我试过清除链接的焦点。我在这里担心的是,我单击的并不是真正的链接,而是带有地图的图像,并且地图变得可见。没有效果。

  • 我阅读了有关 Adob​​e Dreamweaver 的 Link Scrubber 插件。这似乎与手头的项目无关。我正在使用 Visual Studio 2k10,但我做了一些谷歌搜索,试图找到 VS 的类似步骤。我没有找到。

0 投票
3 回答
6719 浏览

asp.net - 如何将 mschart 图表导出到 Excel?

我用 Mchart 创建了一个图表。我想将创建的图表导出到 Excel。我正在使用以下代码,但是当我在 excel 中打开它时,我只看到一些未知代码而不是图表。

0 投票
1 回答
608 浏览

asp.net - 如何将可编辑的图表导出到使用 Mchart 创建的 excel?

我想将使用 mschart 创建的图表导出到 Excel。

我想要 excel 中的真实图表,用户可以更改它的值而不是图表的图像。

解决方案是什么?

0 投票
2 回答
3780 浏览

algorithm - 计算折线图的最小/最大 Y 轴值

我试图复制 Excel 在计算折线图的 Y 轴边界方面的“正确”感觉。

例如,假设我目前有一个图表,上面有三个数据点。(0, 100), (1,500), (2,930)。

我目前拥有的简单代码将 Y 轴最小值设置为 100,将 Y 轴最大值设置为 930。这个想法是为了防止没有 0 值的数据集扭曲图表的大小。这行得通,但我觉得它可能会好得多。

对于上面的示例,Excel 在 0 到 1000 范围内绘制数据点。我正在尝试创建一个通用算法来绘制相同的“感觉良好”范围。然而,事实证明这有点棘手。

我觉得我需要几点信息:

  • 上限值和下限值的数量级(10 的幂)。
  • 始终采用数据点的上限/下限——当数据点与绘制的最大/最小范围具有相同的值时,还不是很清楚。

从那里我有点茫然。

如果我将 930 作为最大数据点值,我知道它的数量级是 3。因此,我将其最大值加 1 并将其余值加 0 - 结果为 1000。

如果我将 1030 作为最大数据点值,我知道它的数量级是 4。如果我将其最大值加 1 并为零,其余的结果是 2000。Excel 在绘图时将 1200 绘制为最大范围 (0, 100 ), (1,500), (2,930), (3,1030)。

这个问题在较大的值下会迅速退化——总是增加最大值并不完全正确,但有时确实如此。有没有人有这方面的经验可以对更好的方法有所了解?

0 投票
2 回答
841 浏览

c# - 如何过滤掉这个非法的 JavaScript 字符?它是在运行时生成的

我正在尝试使用 Microsoft 图表控件生成自定义工具提示。Microsoft Chart Controls 支持使用关键字的功能,这有助于自动化您希望显示的数据。

例如,

在上面的代码中,“#VALY”和“#VALX”是关键字。在运行时,这些关键字将替换为实际值。在我的场景中,#VALY 是双精度,#VALX 是日期时间。

观察:

在此处输入图像描述

现在,如果我使用数据系列的工具提示属性,这将非常有效。不幸的是,Firefox 和Opera不(容易)支持多行工具提示。我试图通过使用自定义工具提示来非法使用此功能。

因此,我有 onmouseover 和 onmouseout 代码——这是负责工具提示的 JavaScript 代码。

问题是当 #VALX 被评估时,它包含非法的 JavaScript 字符。这会导致错误消息“Uncaught SyntaxError: Unexpected token ILLEGAL”

请注意,我已经使用 JavaScriptStringLiteral 方法包装了工具提示。这是效用函数:

如果 #VALX 没有在运行时进行评估,我相信这个实用方法可以解决我的问题。但是,因此,实用程序函数将“#VALX”评估为字符串文字。然后,在过滤掉任何非法字符后,评估#VALX 并将非法字符放入我的 JavaScript。

有没有办法防止这个问题?相当于 C# 中路径的“@”字符的东西?


我想出了解决方案,它很愚蠢

请注意,这表示“\\n”。这曾经是说Environment.NewLine,但这不起作用。此外,如果您使用 Environment.NewLine -或- "\n",则由于运行时评估,您不能稍后编辑 "#VALX"。因此,您必须在添加 X 值时使用转义换行符,以便当 #VALX 获取它时,它已经正确格式化。