Applies to: Nevron Chart for .NET
How to export the image of a single chart panel?
This article shows you how to capture the image displayed by a single panel in the chart. This may be useful when you have a chart control containing several charts or gauges and you want to export the image content of a single chart or gauge.
The solution is to clone the panel using serialization (it’s the fastest way) and place it to an off screen chart, which can then be used using the image exporter to export the panel content. In the following code snippet the contents of the first chart in the control is exported to the clipboard as a bitmap.
[C#]
using
System.IO;
using
Nevron.Serialization;
using
Nevron.Chart.WinForm;
using
Nevron.Chart;
using
Nevron.GraphicsCore;
using
Nevron.Serialization;
...
using
(NChartControl chartControl =
new
NChartControl())
{
NSerializer serializer =
new
NSerializer();
MemoryStream memStream =
new
MemoryStream();
serializer.SaveToStream(nChartControl1.Charts[0], memStream, PersistencyFormat.Binary,
null
);
memStream.Seek(0, SeekOrigin.Begin);
Type panelType = nChartControl1.Charts[0].GetType();
NChart chart = (NChart)serializer.LoadFromStream(panelType, memStream, PersistencyFormat.Binary,
null
);
chartControl.Panels.Clear();
chart.Dock = DockStyle.Fill;
chartControl.Panels.Add(chart);
chartControl.ImageExporter.CopyToClipboard(
new
NSize(200, 200), NResolution.ScreenResolution,
new
NBitmapImageFormat());
}
[VB.NET]
Imports
System.IO
Imports
Nevron.Serialization
Imports
Nevron.Chart.WinForm
Imports
Nevron.Chart
Imports
Nevron.GraphicsCore
Imports
Nevron.Serialization
...
Using chartControl
As
New
NChartControl()
Dim
serializer
As
New
NSerializer()
Dim
memStream
As
New
MemoryStream()
serializer.SaveToStream(nChartControl1.Charts(0), memStream, PersistencyFormat.Binary,
Nothing
)
memStream.Seek(0, SeekOrigin.Begin)
Dim
panelType
As
Type = nChartControl1.Charts(0).[
GetType
]()
Dim
chart
As
NChart =
DirectCast
(serializer.LoadFromStream(panelType, memStream, PersistencyFormat.Binary,
Nothing
), NChart)
chartControl.Panels.Clear()
chart.Dock = DockStyle.Fill
chartControl.Panels.Add(chart)
chartControl.ImageExporter.CopyToClipboard(
New
NSize(200, 200), NResolution.ScreenResolution,
New
NBitmapImageFormat())
End
Using
Article ID: 51, Created On: 10/6/2010, Modified: 11/15/2010