ProEssentials WPF Charting interfaces are used when creating stand-alone client-side EXEs to be distributed and ran on an end-users machine. This VS2022 - VS2019 WPF Net50 NuGet C# Charting Walk-through includes instructions for Visual Studio VS2022 - VS2019.
It is recommended that the namespace: Gigasoft.ProEssentials.Enums be included at the top of your source code files utilizing ProEssentials. In C#, use the using keyword. For example:
The following information demonstrates how to create your first NuGet .NET50 WPF Charting ProEssentials implementation using the C# language. It discusses using the Wpf interfaces to add interactive scientific charting content to your EXEs. See the other charting examples provided within the product/evaluation.
1) Start Visual Studio.NET and create a new project targeting [C#] [Windows] [Desktop] and [WPF Application]. Accept the default name of [WpfApp]. Note to make sure this project type is set to WPF Application and not [.NET FrameWork]. We optionally have assemblies for .Net 4.8 and a different Walk-Through to target the .Net Framework.
2) When the new project opens, you will be presented the design view of "MainWindow.xaml and MainWindow.xaml.cs".
3) Installing NuGet WPF Chart interfaces into Visual Studio.NET
VS2022 - VS2019 Instructions
4) Double Click the [PegoWpf] charting icon within the toolbox and the IDE will automatically insert the chart into MainWindow.xaml.cs between the <Grid > and </Grid> tags.* Note, use the Build menu, Rebuild project to allow the IDE to compile all that is necessary to see the chart in the Designer window.
This represents the default state of a ProEssentials Graph. The default state has one subset with four data points. In the course of constructing your own charts, you'll set the properties PeData.Subsets and PeData.Points which define the quantity of data your chart will hold. You'll then pass data via the PeData.Y[subset, point] two dimensional property array. The following section shows example code of passing data.
ProEssentials uses the terms Subsets and Points but you can think of these as Rows and Columns. Passing data is as simple as filling each Subset with Points worth of data.
You can copy and paste, but hand-typing a few lines of this code will help familiarize yourself with the Gigasoft.ProEssentials namespace.
Note: adding the following usingdeclaration at the top of "Form1.cs" will shorten enumeration syntax.
Pego1.PeString.MainTitle = "Hello World";
Pego1.PeString.SubTitle = "";
Pego1.PeData.Subsets = 2; // Subsets = Rows //
Pego1.PeData.Points = 6; // Points = Columns //
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 = "Jan";
Pego1.PeString.PointLabels = "Feb";
Pego1.PeString.PointLabels = "Mar";
Pego1.PeString.PointLabels = "Apr";
Pego1.PeString.PointLabels = "May";
Pego1.PeString.PointLabels = "June";
Pego1.PeString.SubsetLabels = "For .Net Framework";
Pego1.PeString.SubsetLabels = "or MFC, ActiveX, VCL";
Pego1.PeString.YAxisLabel = "Simple Quality Rendering";
Pego1.PeColor.SubsetColors = Color.FromArgb(60, 0, 180, 0);
Pego1.PeColor.SubsetColors = Color.FromArgb(180, 0, 0, 130);
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.PePlot.SubsetLineTypes = Gigasoft.ProEssentials.Enums.LineType.MediumSolid;
Pego1.PePlot.SubsetLineTypes = Gigasoft.ProEssentials.Enums.LineType.MediumDash;
// This enables data hot spots, But we need to define code in the HotSpot event //
Pego1.PeUserInterface.HotSpot.Data = true;
Pego1.PeConfigure.RenderEngine = Gigasoft.ProEssentials.Enums.RenderEngine.Direct2D;
Pego1.PeConfigure.AntiAliasGraphics = true;
Pego1.PeConfigure.AntiAliasText = true;
// Call these at end of setting properties //
Pego1.Chart.UpdateLayout(); // this is only needed within initial Loaded event //
Your project code should look similar to...
7) The code above enabled the DataHotSpot event, so we should place some appropriate code in the DataHotSpot event.
Again place cursor within the PegoWpf tag and type "PeDataHotSpot=" and accept the default event and right click and select "Go to Definition" to navigate to Event Handler.
Or, Left click the PegoWpf control within designer window to give it the focus.
From the main menu select [View] and [Properties Window]
Within the [Properties Window], click the event icon.
Within the available events, double-click PeDataHotSpot edit box.
Add the following code to the pego1_PeDataHotSpot event.
System.Windows.MessageBox.Show("Subset " + e.SubsetIndex.ToString() + ", Point " + e.PointIndex.ToString() + " with a value of " + Pego1.PeData.Y[e.SubsetIndex, e.PointIndex].ToString());
8) Save and run the project. Your project will show an image as follows. Move the mouse over a bar and click to trigger the DataHotSpot event.
This completes this walkthrough.
Please read the remaining sections within Chapter 2 and review the demo code and documentation that's installed with the eval/product.
Once installed, the demo program can be accessed via shortcut...
Start / ProEssentials v9 / PeDemo
Note that our main charting demo is replicated in WPF and Winform C#.NET, VB.NET, VC++ MFC, Delphi, Builder all accessible from where you installed ProEssentials. These are great for modifying an existing demo to test potential modifications before implementing within your applications.
Thank you for researching. Please contact our engineers if you have a question.
귀사의 조직과 최종 사용자들에게 가장 쉽고 가장 전문적인 혜택을 제공함으로써 귀사께서 성공하시는 것이 당사의 최우선 목표입니다.
프로에센셜은 자체 차트 컴포넌트가 필요한 전기 공학 전문가들로부터 태어났습니다. 프로에센셜을 사용하는 탑 엔지니어링 기업들 명단에 참여히세요.
프로에센셜 고객이 되어주셔서 감사드리며, 프로에센셜 차트 제작 엔진을 연구해주셔서 감사드립니다.