There is a newer version of this package available.
See the version list below for details.
dotnet add package ProEssentials.Chart.Net60.Wpf --version
NuGet\Install-Package ProEssentials.Chart.Net60.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.Net60.Wpf" Version="" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ProEssentials.Chart.Net60.Wpf --version
#r "nuget: ProEssentials.Chart.Net60.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.Net60.Wpf as a Cake Addin
#addin nuget:?package=ProEssentials.Chart.Net60.Wpf&version=

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

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

ProEssentials v9 Pro WPF for .Net60 AnyCPU (Windows Deskop) by Gigasoft, Inc.

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.

What/Why ProEssentials? Watch a short video:

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

  2. Best to download our 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.

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 net6.0-windows7.0 is compatible.  net7.0-windows was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.0-windows7.0

    • 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 98 4/21/2024 78 3/17/2024 94 2/27/2024 252 4/24/2023 346 1/25/2023 299 9/13/2022