9 Sep 202514 minutes to read
This section briefly explains about how to includeBlazor Stock Chart component in your Blazor WebAssembly App using Visual Studio and Visual Studio Code.
To get start quickly with Blazor Stock Chart component, check on this video orGitHub sample.
You can create aBlazor WebAssembly App using Visual Studio viaMicrosoft Templates or theSyncfusion® Blazor Extension.
To addBlazor Stock Chart component in the app, open the NuGet package manager in Visual Studio (Tools → NuGet Package Manager → Manage NuGet Packages for Solution), search and installSyncfusion.Blazor.StockChart andSyncfusion.Blazor.Themes. Alternatively, you can utilize the following package manager command to achieve the same.
Install-PackageSyncfusion.Blazor.StockChart-Version32.1.19Install-PackageSyncfusion.Blazor.Themes-Version32.1.19NOTE
Syncfusion® Blazor components are available innuget.org. Refer toNuGet packages topic for available NuGet packages list with component details.
You can create aBlazor WebAssembly App using Visual Studio Code viaMicrosoft Templates or theSyncfusion® Blazor Extension.
Alternatively, you can create a WebAssembly application using the following command in the terminal(Ctrl+`).
dotnetnewblazorwasm-oBlazorAppcdBlazorApp.csproj file is located.dotnetaddpackageSyncfusion.Blazor.StockChart-v32.1.19dotnetaddpackageSyncfusion.Blazor.Themes-v32.1.19dotnetrestoreNOTE
Syncfusion® Blazor components are available innuget.org. Refer toNuGet packages topic for available NuGet packages list with component details.
Open~/_Imports.razor file and import theSyncfusion.Blazor andSyncfusion.Blazor.Charts namespace.
@using Syncfusion.Blazor@using Syncfusion.Blazor.ChartsNow, register the Syncfusion® Blazor Service in the~/Program.cs file of your Blazor WebAssembly App.
usingMicrosoft.AspNetCore.Components.Web;usingMicrosoft.AspNetCore.Components.WebAssembly.Hosting;usingSyncfusion.Blazor;varbuilder=WebAssemblyHostBuilder.CreateDefault(args);builder.RootComponents.Add<App>("#app");builder.RootComponents.Add<HeadOutlet>("head::after");builder.Services.AddScoped(sp=>newHttpClient{BaseAddress=newUri(builder.HostEnvironment.BaseAddress)});builder.Services.AddSyncfusionBlazor();awaitbuilder.Build().RunAsync();....The theme stylesheet and script can be accessed from NuGet throughStatic Web Assets. Include the stylesheet and script references in the<head> section of the~/index.html file.
<head> ....<linkhref="_content/Syncfusion.Blazor.Themes/bootstrap5.css"rel="stylesheet"/><scriptsrc="_content/Syncfusion.Blazor.Core/scripts/syncfusion-blazor.min.js"type="text/javascript"></script></head>NOTE
Check out theBlazor Themes topic to discover various methods (Static Web Assets,CDN, andCRG) for referencing themes in your Blazor application. Also, check out theAdding Script Reference topic to learn different approaches for adding script references in your Blazor application.
Add the Syncfusion® Blazor Stock Chart component in the~/Pages/Index.razor file.
<SfStockChart></SfStockChart>To bind data for the Stock Chart component, assign aIEnumerable object to theDataSource property. It can also be provided as an instance of theDataManager.
@code{ public class StockChartData { public DateTime Date { get; set; } public Double Open { get; set; } public Double Low { get; set; } public Double Close { get; set; } public Double High { get; set; } public Double Volume { get; set; } } public List<StockChartData> StockDetails = new List<StockChartData> { new StockChartData { Date = new DateTime(2012, 04, 02), Open = 85.9757, High = 90.6657, Low = 85.7685, Close = 90.5257, Volume = 660187068}, new StockChartData { Date = new DateTime(2012, 04, 09), Open = 89.4471, High = 92, Low = 86.2157, Close = 86.4614, Volume = 912634864}, new StockChartData { Date = new DateTime(2012, 04, 16), Open = 87.1514, High = 88.6071, Low = 81.4885, Close = 81.8543, Volume = 1221746066}, new StockChartData { Date = new DateTime(2012, 04, 23), Open = 81.5157, High = 88.2857, Low = 79.2857, Close = 86.1428, Volume = 965935749}, new StockChartData { Date = new DateTime(2012, 04, 30), Open = 85.4, High = 85.4857, Low = 80.7385, Close = 80.75, Volume = 615249365}, new StockChartData { Date = new DateTime(2012, 05, 07), Open = 80.2143, High = 82.2685, Low = 79.8185, Close = 80.9585, Volume = 541742692}, new StockChartData { Date = new DateTime(2012, 05, 14), Open = 80.3671, High = 81.0728, Low = 74.5971, Close = 75.7685, Volume = 708126233}, new StockChartData { Date = new DateTime(2012, 05, 21), Open = 76.3571, High = 82.3571, Low = 76.2928, Close = 80.3271, Volume = 682076215}, new StockChartData { Date = new DateTime(2012, 05, 28), Open = 81.5571, High = 83.0714, Low = 80.0743, Close = 80.1414, Volume = 480059584}, };}Now set theStockDetails toDataSource property. By default, Stock Chart will be rendered based on the providedDate andHigh fields value from datasource without any mapping.
<SfStockChart><StockChartSeriesCollection><StockChartSeriesDataSource="@StockDetails"Type="ChartSeriesType.Candle"XName="Date"YName="Close"High="High"Low="Low"Open="Open"Close="Close"Volume="Volume"></StockChartSeries></StockChartSeriesCollection></SfStockChart>PressCtrl+F5 (Windows) or⌘+F5 (macOS) to launch the application. This will render the Syncfusion® Blazor Stock Chart component in your default web browser.

A title usingTitle property can be added in the Stock Chart, to provide quick information to the user about the data plotted in the component.
<SfStockChartTitle="AAPL Historical"><StockChartSeriesCollection><StockChartSeriesDataSource="@StockDetails"Type="ChartSeriesType.Candle"XName="Date"YName="Close"High="High"Low="Low"Open="Open"Close="Close"Volume="Volume"></StockChartSeries></StockChartSeriesCollection></SfStockChart>@code { public class ChartData { public DateTime Date { get; set; } public Double Open { get; set; } public Double Low { get; set; } public Double Close { get; set; } public Double High { get; set; } public Double Volume { get; set; } } public List<ChartData> StockDetails = new List<ChartData> { new ChartData { Date = new DateTime(2012, 04, 02), Open= 85.9757, High = 90.6657,Low = 85.7685, Close = 90.5257,Volume = 660187068}, new ChartData { Date = new DateTime(2012, 04, 09), Open= 89.4471, High = 92,Low = 86.2157, Close = 86.4614,Volume = 912634864}, new ChartData { Date = new DateTime(2012, 04, 16), Open= 87.1514, High = 88.6071,Low = 81.4885, Close = 81.8543,Volume = 1221746066}, new ChartData { Date = new DateTime(2012, 04, 23), Open= 81.5157, High = 88.2857,Low = 79.2857, Close = 86.1428,Volume = 965935749}, new ChartData { Date = new DateTime(2012, 04, 30), Open= 85.4, High = 85.4857,Low = 80.7385, Close = 80.75,Volume = 615249365}, new ChartData { Date = new DateTime(2012, 05, 07), Open= 80.2143, High = 82.2685,Low = 79.8185, Close = 80.9585,Volume = 541742692}, new ChartData { Date = new DateTime(2012, 05, 14), Open= 80.3671, High = 81.0728,Low = 74.5971, Close = 75.7685,Volume = 708126233}, new ChartData { Date = new DateTime(2012, 05, 21), Open= 76.3571, High = 82.3571,Low = 76.2928, Close = 80.3271,Volume = 682076215}, new ChartData { Date = new DateTime(2012, 05, 28), Open= 81.5571, High = 83.0714,Low = 80.0743, Close = 80.1414,Volume = 480059584} };}
The crosshair is a vertical and horizontal line on the view that shows the value of an axis when the mouse or touch is in a certain position. The crosshair lines can be enabled by usingEnable property in theStockChartCrosshairSettings. Likewise tooltip label for an axis can be enabled by usingEnable property in theStockChartTooltipSettings.
<SfStockChart><StockChartCrosshairSettingsEnable="true"></StockChartCrosshairSettings><StockChartSeriesCollection><StockChartSeriesDataSource="@StockDetails"Type="ChartSeriesType.Column"XName="Date"YName="Y"></StockChartSeries></StockChartSeriesCollection></SfStockChart>@code { public class ChartData { public DateTime Date { get; set; } public Double Y { get; set; } } public List<ChartData> StockDetails = new List<ChartData> { new ChartData { Date = new DateTime(2012, 04, 02), Y= 100}, new ChartData { Date = new DateTime(2012, 04, 09), Y= 10 }, new ChartData { Date = new DateTime(2012, 04, 16), Y= 500}, new ChartData { Date = new DateTime(2012, 04, 23), Y= 80 }, new ChartData { Date = new DateTime(2012, 04, 30), Y= 200}, new ChartData { Date = new DateTime(2012, 05, 07), Y= 600}, new ChartData { Date = new DateTime(2012, 05, 14), Y= 50 }, new ChartData { Date = new DateTime(2012, 05, 21), Y= 700}, new ChartData { Date = new DateTime(2012, 05, 28), Y= 90 } };}
The trackball is used to track a closest data point to the mouse or touch position. The trackball marker indicates the closest point and trackball tooltip displays the information about the point. It can be enabled by setting theEnable property in theStockChartCrosshairSettings totrue andShared property in theStockChartTooltipSettings totrue in component.
<SfStockChart><StockChartCrosshairSettingsEnable="true"LineType="LineType.Vertical"></StockChartCrosshairSettings><StockChartTooltipSettingsEnable="true"Shared="true"Format="${point.x} : ${point.y}"Header="AAPL"></StockChartTooltipSettings><StockChartSeriesCollection><StockChartSeriesDataSource="@StockDetails"Type="ChartSeriesType.Line"XName="Date"YName="Y"></StockChartSeries><StockChartSeriesDataSource="@StockDetails"Type="ChartSeriesType.Line"XName="Date"YName="Y1"></StockChartSeries></StockChartSeriesCollection></SfStockChart>@code { public class ChartData { public DateTime Date { get; set; } public Double Y { get; set; } public Double Y1 { get; set; } } public List<ChartData> StockDetails = new List<ChartData> { new ChartData { Date = new DateTime(2012, 04, 02), Y= 100, Y1= 50}, new ChartData { Date = new DateTime(2012, 04, 09), Y= 10 , Y1= 5}, new ChartData { Date = new DateTime(2012, 04, 16), Y= 500, Y1= 250}, new ChartData { Date = new DateTime(2012, 04, 23), Y= 80 , Y1= 60}, new ChartData { Date = new DateTime(2012, 04, 30), Y= 200, Y1= 100}, new ChartData { Date = new DateTime(2012, 05, 07), Y= 600, Y1= 300}, new ChartData { Date = new DateTime(2012, 05, 14), Y= 50 , Y1= 25}, new ChartData { Date = new DateTime(2012, 05, 21), Y= 700, Y1= 350}, new ChartData { Date = new DateTime(2012, 05, 28), Y= 90 , Y1= 45} };}