I am looking for a .NET 2.0 compatible simple Chart/Graph control to embed in my Winform application. So far I could only found Zed Graph. While it has all the functionality I need and then some, my problem is that its looks too professional for its own good. I tried customizing it and playing with its styling properties but the graph still looked dull.
I need a snazzy looking control which can give a chart that looks similar to this one
I don't really need all the details Zed Graph gives.
Can someone suggest a free control that can do this. Please bare in mind that the control should work with .NET 2.0
Regards
NPlot
NPlot (formerly known as scpl) is a free charting library for .NET. It boasts an elegant and flexible API. NPlot includes controls for Windows.Forms, ASP.NET and a class for creating Bitmaps.
Related
Is there anything like js lib mxGraph (https://www.draw.io/) availabe for desktop c# apps? (Any GUI)
I know draw.io using mxGraph, which also has Java version, but i didn't find .net implementation. (in fact it has C# renderer, which renders graph to System.Drawing.Image without any interaction support)
I know there is graphviz and graphsharp, but there is no tutorial/user manual like mxGraph has.
I know there is telerik, syncfusion etc controls, but they are paid.
The thing is I need a diagraming tool for my app, and I don't want to invent a wheel.
But it seems like either I stick with undocumented graphsharp or create an Electron app (low perfomace, high memory usage)
This may help https://github.com/prepare/opendiagram .
Open Diagram is a .net diagramming component library for the .Net framework winforms environment.
I use a product that uses this, personally I have no experience in developing with it.
I am developing a WPF app that requires Docking control.
I downloaded Telerik's RADDock but I understand it is not native MVVM control (Have I got to the right conclusion??)
So later I downloaded and installed Avalaon dock 2.0, which has built-in MVVM support, however I can't understand how to use it..
I have a User control I created (Terminal control that encapsulates a TextBox) and I want to dynamically add new terminal instances to the AvalonDock LayoutDocumentPane, through my view model.
Can anyone please guide me through this, maybe supply a simple code example that demonstrates how this can be done.
Thanks in advance friends.
There are plenty of info on how to use AvalonDock 2.0 in MVVM-style on the net.
However, the most interesting ideas were proposed by Ashley Davis. But his library works with AvalonDock 1.3, so it can't be used straight-forward. If you have enough resources and project is pretty big, you can translate that ideas into AvalonDock 2.0 world and publish it somewhere. That'd be huge for the community. =)
I write a C#-application at the moment. For my finance data, I want to use a bar chart. After I searched a lot on Google, the best way seems to be Google Chart API.
My problem is, that it should not be necessary that I have internet-access when I start my application.
Is it possible to work with Google Chart API without internet-access? Or what is a good alternative for a bar chart in WPF?
As for native WPF charts you can definitely take a look at DevExpress WPF Chart control - DXCharts
They supports animation, end-user interaction and work pretty fast in my projects that handle financial data.
Google APIs work online only and you cannot consume them while offline.
about alternatives, the MS Chart control should be free, see how to use it from WPF or SL here:
Microsoft Client Continuum in action: The Silverlight toolkit charts, running in WPF
for commercial level and feature rich controls, personally I love the XtraCharts from DevXpress, there are also others from Telerik and Software FX but XtraChart is really easy to use and powerful.
Please say name of this component and does c# have it?
As others have suggested, this is commonly called an Outlook Bar after it's most famous usage in the Microsoft Outlook application.
Something similar is available in most third-party control suites, but if you're looking for something that is free and easily customizable, you might check out the OutlookBar control available on CodeProject:
The control itself is pretty simple, and implemented entirely in managed C# code as a UserControl.It should work under all versions of the .NET Framework back to 1.1, and is painless to integrate into your application. Best of all, with the source code freely downloadable, it's infinitely customizable to fit your specific needs!
I think it is called accordion, at least in jQuery.
And I do not know of any such in the basic controlles that comes with c# but I am cetrain that there are many 3:rd party components like this.
ComponentArts or Telerik are the first that comes to mind.
In WinForms, this is called an Outlook Bar or Navigation bar.
Most (if not all) third-party control suites, such as DevExpress, offer it.
I think its name is Accordion and it doesn't exists natively on Windows Forms Architecture.
Accordion ? Try searching among different control toolkits - there should be an implementation.
I want to display data on a Windows Forms project in C#.
The general sketch for the GUI is similar to Acrobat Reader or MS Word - meaning i want to display the data on several pages, and let the user navigate between the pages. The data i`m displaying isn't special, i just want to give the user a "page" feeling when viewing it.
I`m searching for a good starting point, preferably open-source.
I thought about using some kind of a reporting tool, such as Crystal Reports, is that a good idea?
Also, is better to use WPF then WinForms for this?
Any thought and recommendations are welcome.
Thanks.
It sounds like you would be better off going the WPF route. You have MUCH better control over how your "form" looks.
What you would want to do is define each "page" in a user control or something, then you can display each one however you like. WPF can handle the zooming for you, all you have to do is hook it up (look into transforms). I can't see WinForms doing this. I would suggest looking at this project on codeplex.
If this project is just for fun, and if you already are using Visual Studio 2008, then WPF is a good choice for this.
If you intend to make this a commercial project, however, I would recommend making it a WinForms application. WPF requires Visual Studio 2008 and .Net 3.5. Many Windows users (especially corporate customers) are still using .Net 2.0 and don't plan to upgrade soon. Some are even still on .Net 1.1 (or no .Net at all). .Net 2.0 comes pre-installed now on new PCs, and the installer for 2.0 is only 23 MB (versus close to 200 MB for the somewhat-buggy .Net 3.5 installer). Also, .Net apps can (potentially) be made to run on Mac, Linux and the iPhone thanks to Mono, but Mono now is somewhere between .Net 2.0 and .Net 3.5, so WPF applications can't be cross-platform yet.
Here is a previous answer to a sort-of-similar question about doing a zoom effect in .Net with GDI+:
Auto sizing zoom on an image in .NET
This should give you a start on doing this kind of graphics work in .Net (and it's as open source as it gets).
Update: If you want to render XPS documents (easily), then you should use WPF. However, this choice would effectively eliminate the possibility of making your application cross-platform via Mono, at least in the short-term.
An alternative would be to export your documents as PDF files, or use Adobe Acrobat to convert your XPS documents into PDF files. Here is a link to a CodeProject sample that renders PDFs entirely in C#/.Net 2.0 or older:
http://www.codeproject.com/KB/showcase/pdfrasterizer.aspx
This code would allow your WinForms application to render a PDF file as a collection of Bitmaps (one for each page), and from there it's a relatively simple matter to display these Bitmaps in the manner you describe (with zoom and everything). Because the project would use .Net 2.0, it should work in Mono without any modifications.
TabControl doesn't do what you want?
It sounds like what your trying to do is make an application behave like a web page. Would just adding a WebBrowser control suffice ?