Rendering Modes
The Chart for Blazor supports two modes for rendering its data. You can set the desired rendering mode through the RenderAs
parameter the TelerikChart
exposes. It takes a member of the Telerik.Blazor.RenderingMode
enum and depending on the result you are trying to achieve, you can choose one of the following:
SVG
The default rendering mode of the Chart is SVG (Scalable Vector Graphics) and it is recommended for general use.
Using vector graphics ensures that:
- The browser zoom does not degrade the image.
- The prints are crisp regardless of the resolution.
In addition, the SVG Chart provides accessibility features such as general description and aria label templates out of the box.
<TelerikChart Width="700px" Height="400px">
<ChartSeriesItems>
<ChartSeries Type="ChartSeriesType.Bar" Name="Product 1" Data="@series1Data">
</ChartSeries>
<ChartSeries Type="ChartSeriesType.Bar" Name="Product 2" Data="@series2Data">
</ChartSeries>
</ChartSeriesItems>
<ChartCategoryAxes>
<ChartCategoryAxis Categories="@xAxisItems"></ChartCategoryAxis>
</ChartCategoryAxes>
<ChartTitle Text="Quarterly revenue per product"></ChartTitle>
<ChartLegend Position="ChartLegendPosition.Right">
</ChartLegend>
</TelerikChart>
@code {
public List<object> series1Data = new List<object>() { 10, 2, 5, 6 };
public List<object> series2Data = new List<object>() { 5, 8, 2, 7 };
public string[] xAxisItems = new string[] { "Q1", "Q2", "Q3", "Q4" };
}
Canvas
When performance is critical (for example when rendering large dashboards and frequently updated charts) it is recommended to use Canvas (bitmap).
The browser does not have to maintain a live DOM tree for the Chart which results in:
- Quicker screen updates.
- Lower memory usage.
On the downside, rendering a fixed resolution bitmap results in:
- Blurry images on zoom.
- Poorer print quality.
- No built-in accessibility features.
<TelerikChart RenderAs="@RenderingMode.Canvas" Width="700px" Height="400px">
<ChartSeriesItems>
<ChartSeries Type="ChartSeriesType.Bar" Name="Product 1" Data="@series1Data">
</ChartSeries>
<ChartSeries Type="ChartSeriesType.Bar" Name="Product 2" Data="@series2Data">
</ChartSeries>
</ChartSeriesItems>
<ChartCategoryAxes>
<ChartCategoryAxis Categories="@xAxisItems"></ChartCategoryAxis>
</ChartCategoryAxes>
<ChartTitle Text="Quarterly revenue per product"></ChartTitle>
<ChartLegend Position="ChartLegendPosition.Right">
</ChartLegend>
</TelerikChart>
@code {
public List<object> series1Data = new List<object>() { 10, 2, 5, 6 };
public List<object> series2Data = new List<object>() { 5, 8, 2, 7 };
public string[] xAxisItems = new string[] { "Q1", "Q2", "Q3", "Q4" };
}