我在我的项目中使用Microsoft Chart控件,我想通过使用鼠标滚轮启用Chart Control中的缩放功能,我该如何实现?
但是用户不必点击图表,应该就像鼠标位置在我的图表上而不是从鼠标滚轮那个点开始它可以放大/缩小
考虑一个构建ASP.NET图表图像的ASP.NET MVC控制器方法.
public FileStreamResult MakeImg(IEnumerable<MyObj> stats)
{
Chart barchart = BarChart(400, 300);
Series series1 = new Series("Series1");
series1.ChartArea = "ca1";
series1.ChartType = SeriesChartType.Column;
series1.IsValueShownAsLabel = true;
series1.Font = new Font("Verdana", 9f, FontStyle.Regular);
barchart.Series.Add(series1);
// Set chart data source
barchart.DataSource = stats;
// Set series members names for the X and Y values
barchart.Series["Series1"].XValueMember = "FriendlyDate";
barchart.Series["Series1"].YValueMembers = "NumRecords";
// Data bind to the selected data source
barchart.DataBind();
MemoryStream ms = new MemoryStream();
barchart.SaveImage(ms, ChartImageFormat.Png);
ms.Seek(0, SeekOrigin.Begin);
return new FileStreamResult(ms, "image/png"); …Run Code Online (Sandbox Code Playgroud) 如何使用鼠标滚轮启用Microsoft图表控件放大
我有以下代码,我需要知道如何制作此活动?在哪个班级..
private void chData_MouseWheel(object sender, MouseEventArgs e)
{
try
{
if (e.Delta < 0)
{
chart1.ChartAreas[0].AxisX.ScaleView.ZoomReset();
chart1.ChartAreas[0].AxisY.ScaleView.ZoomReset();
}
if (e.Delta > 0)
{
double xMin = chart1.ChartAreas[0].AxisX.ScaleView.ViewMinimum;
double xMax = chart1.ChartAreas[0].AxisX.ScaleView.ViewMaximum;
double yMin = chart1.ChartAreas[0].AxisY.ScaleView.ViewMinimum;
double yMax = chart1.ChartAreas[0].AxisY.ScaleView.ViewMaximum;
double posXStart = chart1.ChartAreas[0].AxisX.PixelPositionToValue(e.Location.X) - (xMax - xMin) / 4;
double posXFinish = chart1.ChartAreas[0].AxisX.PixelPositionToValue(e.Location.X) + (xMax - xMin) / 4;
double posYStart = chart1.ChartAreas[0].AxisY.PixelPositionToValue(e.Location.Y) - (yMax - yMin) / 4;
double posYFinish = chart1.ChartAreas[0].AxisY.PixelPositionToValue(e.Location.Y) + (yMax - yMin) / 4; …Run Code Online (Sandbox Code Playgroud) 是否有可能格式化MS Chart Control图表,轴标签是在主要/次要刻度标记之间呈现的?
例如:在X轴上
| | | x | |
| x | x | | |
| | | | x |
+-------+-------+-------+-------+
1/1 2/1 3/1 4/1
Run Code Online (Sandbox Code Playgroud)
而不是默认:
| | | x |
| x x | |
| | | | x
+-------+-------+-------+-------+----
1/1 2/1 3/1 4/1
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ASP.net上的Microsoft图表控件为仪表板生成迷你图.迷你图通常没有轴或除显示的数据点之外的任何东西.
我成功地关掉了大部分线条,但我遇到了一条横线和一条垂直线,我无法弄清楚如何摆脱.这是我看到的:

这就是我想要的:

这是我正在使用的代码的摘录(减去实际数据):
Chart2.Width = 100;
Chart2.Height = 60;
Chart2.BorderlineWidth = 0;
var name = "Northeast Region";
ChartArea area = new ChartArea(name);
area.AxisX.LabelStyle.Enabled = false;
area.AxisY.LabelStyle.Enabled = false;
area.AxisX.MajorGrid.Enabled = false;
area.AxisY.MajorGrid.Enabled = false;
area.AxisY.MajorTickMark.Enabled = false;
area.AxisY.MinorTickMark.Enabled = false;
area.AxisX.MajorTickMark.Enabled = false;
area.AxisX.MinorTickMark.Enabled = false;
area.BorderWidth = 0;
Chart2.ChartAreas.Add(area);
Series s = new Series(area.Name);
s.ChartType = SeriesChartType.Line;
s.ChartArea = area.Name;
s.Color = System.Drawing.Color.Gray;
foreach (var row in Data)
{
s.Points.AddXY(row.StartDate, row.Sales);
}
Chart2.Series.Add(s);
Run Code Online (Sandbox Code Playgroud)
我有什么想法我做错了吗?
我正在使用Microsoft Chart Controls(4.0),并且有一个包含多种标记类型的折线图.这么多,我已经没有市场营销了.默认值(方形,三角形,圆形等)不足.
是否可以添加自定义标记类型图像?例如,我需要一个指向相反方向的三角形.
我正在按照ASP.NET Razor页面指南在ASP.NET MVC 3视图中生成图表.
我可以生成/显示饼图.但我看不出如何改变饼图幻灯片的颜色 - 或者爆炸切片.
我试图引用Chart对象的"Series"集合,但是没有看到它是一个.
这是我目前的代码片段.
<td>
@{
Chart chart =
new Chart(width: 100, height: 100)
.AddSeries(chartType: "Pie", name: "Dafault", xValue: new[] { "Yes", "No" }, yValues: new[] { 70.2m, 29.8m });
chart.Write();
}
</td>
Run Code Online (Sandbox Code Playgroud)
有谁能告诉我怎么回事?
我正在使用Dundas Chart Controls和Microsoft Chart Controls for .NET.目前我有一个方法,用一个通用List中的日期填充图表控件.
假设我用一个列表中的数据填充图表.然后我想用另一个列表中的数据填充图表.
我在使用第二个列表中的数据填充图表时遇到问题.我最终得到一个图表,显示列表1和列表2中的组合数据,而我希望它只显示第一个列表中的数据,然后在显示第二个列表中的数据之前清除图表.
我已经尝试了各种方法调用来清除图表控件,然后用第二个列表中的数据填充它但无济于事.
有办法做到这一点吗?
如何为.net(用于创建.png-images)的微软图表控件创建的图像定义图像分辨率(以DPI为单位).
图表控件的winforms版本具有Chart.RenderingDpi [X | Y] -属性,但是对于asp.net控件,我找不到这样的属性.
有人可以让我找到解决方案吗?
更新
在搜索解决方案期间,我看到图表控件有一个Paint方法.有了这个,我能够用其他DPI设置创建图像.我不确定这是否是正确的方法,但结果对我来说并不坏.我已经发布了代码作为答案.如果有人有更整洁的解决方案,请告诉我.
使用这篇文章中的“从控制器生成图像”答案,我创建了一个控制器操作来返回图表图像,如下所示(X 和 Y 值只是作为测试数据):
public FileContentResult HistoryChart()
{
Chart chart = new Chart();
string[] currencies = { "ZAR", "USD", "GBP", "JPY" };
foreach (string currency in currencies)
{
Series series = new Series(currency);
series.ChartType = SeriesChartType.FastLine;
for (int x = 0; x <= 30; x++)
series.Points.AddXY(x, (x * 5));
chart.Series.Add(series);
}
using (MemoryStream ms = new MemoryStream())
{
chart.SaveImage(ms, ChartImageFormat.Png);
ms.Seek(0, SeekOrigin.Begin);
return File(ms.ToArray(), "image/png", "mychart.png");
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,控制器返回的图像是空白的(尽管它确实返回图像)
我希望它是我遗漏的一些简单的东西!任何意见将不胜感激,谢谢。
asp.net-mvc controller image mschart microsoft-chart-controls
我想将 ChartControl 保存到图像中而不将其显示在屏幕上。
\n\nvar theChart = new Chart();\nvar theSeries = new Series("values");\ntheSeries.IsVisibleInLegend = false;\ntheChart.Series.Add(theSeries);\ntheSeries.Points.AddXY(1, 1);\ntheSeries.Points.AddXY(2, 2);\ntheSeries.Points.AddXY(3, 3);\ntheChart.SaveImage(@"D:\\T\xc3\xa9l\xc3\xa9chargements\\HiddenChart4.png", ChartImageFormat.Png);\nRun Code Online (Sandbox Code Playgroud)\n\n然后我得到一张空白图片。我认为这是因为控件不是油漆。是否可以 ?
\n有没有办法创建我自己的图表调色板,我可以在其中指定我自己的颜色?
那些可以从
chart.Palette = System.Web.UI.DataVisualization.Charting.ChartColorPalette. //palette
Run Code Online (Sandbox Code Playgroud)
不太适合我们的设计,所以如果可能的话,创建我自己的设计会很好,谢谢!
c# ×7
.net ×4
asp.net-mvc ×4
asp.net ×2
image ×2
mschart ×2
charts ×1
controller ×1
controls ×1
dundas ×1
mousewheel ×1
razor ×1