There is a newer version of this package available.
See the version list below for details.
dotnet add package ProEssentials.Chart.Net.Wpf --version
NuGet\Install-Package ProEssentials.Chart.Net.Wpf -Version
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ProEssentials.Chart.Net.Wpf" Version="" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ProEssentials.Chart.Net.Wpf --version
#r "nuget: ProEssentials.Chart.Net.Wpf,"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ProEssentials.Chart.Net.Wpf as a Cake Addin
#addin nuget:?package=ProEssentials.Chart.Net.Wpf&version=

// Install ProEssentials.Chart.Net.Wpf as a Cake Tool
#tool nuget:?package=ProEssentials.Chart.Net.Wpf&version=

----------- READ ME ------------------------

ProEssentials v9 Pro Wpf for .Net Framework (Windows), by Gigasoft, Inc.

ProEssentials.Chart.Net.Wpf.nupkg is for .Net Framework 4.8 and earlier. Also search for our .Net60.Wpf

Note it's best to use the Gigasoft (local) nugets that will be installed with the ProEssentialsv9 eval or if you purchase ProEssentials. The eval trial download is hassle free at The local nuget default install location is c:\ProEssentials9\Nuget If your system has the DotNet CLI available, our setup.exe will automatically set Gigasoft (Local) as a local Nuget source. Else if DotNet CLI is not available, we recommend installing the DotNet CLI and reinstall ProEssentials.

Note, first time dragging a tool from toolbox may require Visual Studio be running with Admin privileges. This Nuget uses an embedded resourse that must unpack upon first use to support the designer.
Subsequent uses will not require Admin.

  1. Gigasoft's engineers will no-hassle/quickly answer your questions and provide programming services as needed. Just ask.

  2. Best to download the full eval at

  3. ProEssentials is ideal for large mission critical data visualization projects with many variations of proprietary interactive charts.

  4. Gigasoft's attention to rendering detail quickly creates a clean professional end-user experience.

  5. ProEssentials provides charts packed with data and annotations producing your proprietary visions mostly free of overlapping text and odd behaviors.

Watch a short video:

For a quick look, achieved with a few lines of code :

Documentation :

This Nuget is fine for a first look, however, for a complete functional evaluation, including example projects, local help... Download the full eval :

The eval download is the best way to learn ...

  • examples 000, 100, 400 to know the basics
  • examples 007, 014, 105, 107, 125 to know how to interact with chart programmatically
  • examples 015, 005, 101, 026, 027, 028 to know about annotations
  • examples 012, 013 for multiple axes, and 103 and 104 to overlap multiple axes
  • example 005, and 132 to know how to create custom axes
  • the more you play with our demo projects, the faster you master ProEssentials.

Simple Walk-Through Instructions: Winforms C#

  1. Place a PegoWpf control on your window naming Pego1.

After embedding the chart in your window, place the cursor within the PegoWpf tag type "Name=" and provide a name for your chart "Pego1" and then type "Loaded=" and accept the default loaded event and right click and select Navigate to Event Handler. Your xaml should look like...

<Grid> <my:PegoWpf Name="Pego1" Loaded="Pego1_Loaded" /> </Grid>

  1. Paste this code into your Load event handler.... Build, Run, Right-Click the chart to tinker with UI.

Pego1.PeString.MainTitle = "Hello World"; Pego1.PeString.SubTitle = "";

Pego1.PeData.Subsets = 2; Pego1.PeData.Points = 6; Pego1.PeData.Y[0, 0] = 10; Pego1.PeData.Y[0, 1] = 30; Pego1.PeData.Y[0, 2] = 20; Pego1.PeData.Y[0, 3] = 40; Pego1.PeData.Y[0, 4] = 30; Pego1.PeData.Y[0, 5] = 50; Pego1.PeData.Y[1, 0] = 15; Pego1.PeData.Y[1, 1] = 63; Pego1.PeData.Y[1, 2] = 74; Pego1.PeData.Y[1, 3] = 54; Pego1.PeData.Y[1, 4] = 25; Pego1.PeData.Y[1, 5] = 34;

Pego1.PeString.PointLabels[0] = "Jan"; Pego1.PeString.PointLabels[1] = "Feb"; Pego1.PeString.PointLabels[2] = "Mar"; Pego1.PeString.PointLabels[3] = "Apr"; Pego1.PeString.PointLabels[4] = "May"; Pego1.PeString.PointLabels[5] = "June";

Pego1.PeString.SubsetLabels[0] = "For .Net Framework"; Pego1.PeString.SubsetLabels[1] = "or MFC, ActiveX, VCL"; Pego1.PeString.YAxisLabel = "Simple Quality Rendering";

Pego1.PeColor.SubsetColors[0] = Color.FromArgb(60, 0, 180, 0); Pego1.PeColor.SubsetColors[1] = Color.FromArgb(180, 0, 0, 130); Pego1.PePlot.Option.MinimumPointSize = Gigasoft.ProEssentials.Enums.MinimumPointSize.MediumLarge;

Pego1.PeColor.BitmapGradientMode = false; Pego1.PeColor.QuickStyle = Gigasoft.ProEssentials.Enums.QuickStyle.LightShadow; Pego1.PeTable.Show = Gigasoft.ProEssentials.Enums.GraphPlusTable.Both; Pego1.PeData.Precision = Gigasoft.ProEssentials.Enums.DataPrecision.NoDecimals; Pego1.PeFont.Label.Bold = true; Pego1.PePlot.Method = Gigasoft.ProEssentials.Enums.GraphPlottingMethod.Bar; Pego1.PePlot.Option.GradientBars = 8; Pego1.PePlot.Option.BarGlassEffect = true; Pego1.PeLegend.Location = Gigasoft.ProEssentials.Enums.LegendLocation.Left; Pego1.PePlot.DataShadows = Gigasoft.ProEssentials.Enums.DataShadows.ThreeDimensional; Pego1.PeFont.FontSize = Gigasoft.ProEssentials.Enums.FontSize.Large;

Pego1.PeConfigure.RenderEngine = Gigasoft.ProEssentials.Enums.RenderEngine.Direct2D; Pego1.PeConfigure.AntiAliasGraphics = true; Pego1.PeConfigure.AntiAliasText = true; Pego1.PeUserInterface.HotSpot.Data = true; Pego1.PeFunction.ReinitializeResetImage();

Pego1.Invalidate(); Pego1.UpdateLayout();


Notes related to placing our WPFs into tab controls and other containers that potentially Unload and Load our control.

ProEssentials WPFs by default do not support persistence and you must enable. This is because our charts often contain huges amounts of data which is less than ideal for tab containers.

However, enabling persistence is easy.

Step 1: within our xml tags, type PersistenceEnabled and set to True Step 2: Within your _Loaded events, test for PersistenceDataExists and return; if True.

A simple example: Note PersistenceEnabled and PersistenceDataExists

<ProEssentials:PegoWpf Name="Pego1" Margin="20,20,20,20" Loaded="Pego1_Loaded" PersistenceEnabled="True" />

private void Pego1_Loaded(object sender, RoutedEventArgs e) { if (Pego1.PersistenceDataExists) { return; } // Return if PersistenceDataExists, avoid over-writing persistence data
Pego1.PeString.MainTitle = "Hello"; Pego1.PeFunction.ReinitializeResetImage(); }

Product Compatible and additional computed target framework versions.
.NET Framework net452 is compatible.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.5.2

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated 90 4/21/2024 87 3/17/2024 94 2/27/2024 250 4/24/2023 296 1/25/2023 410 9/13/2022 425 7/15/2022 431 4/26/2022 436 3/17/2022 296 12/23/2021 402 10/16/2021 359 6/30/2021 321 6/14/2021 345 5/21/2021