Alternative to winforms that can be easily used with C# and .NET
I am tired of flickering of GUI and every possible control, mi开发者_Go百科lions of articles about double-buffering, ControlStyle flags and so on that don't even work; look at this examples:
How to prevent a Windows Forms TextBox from flickering on resize?
After reading this question, other on SO, and many articles on the web i think there are 2 options, write own controls, or use alternative to the winforms. So my question is: what are good alternatives that can be easily used with C# and .NET on Windows, and maybe even on Linux and Mac (but this is not necessary)? However if i missing something with all that windows mess, i will be glad if you correct me.
One important thing, altough flickering and other problems are annoying, they not prevent job getting done, so alternatives priority is to be fully functional, otherwise, it's better to stick with ancient winforms.
What about these alternatives?
- WPF
- GTK+
- Qt
WPF, would be your answer to Windows Forms if you are on the .NET platform.
Have you seen this SO question? It might help you with the flickering problems.
I have never experienced flickering in my winform programs with VS2008 in C#.NET. However, if you want an alternative, you could always call the native WIN API functions. It is much more complicated than using winforms though, so you would probably regret it. You will have to write a LOT of code to populate and retrieve data from your controls.
The reason .NET was developed was to make programming easier (and to lock millions of programmers into the Microsoft platform). I am very happy with it. If you have invested the time to learn the .NET platform, I think you would be better off sticking with it. Each development system has its own peculiarities, and you may have more trouble than you would have with .NET, and it might be harder to find someone to help you when you have a problem.
If you are not prepared to consider using WPF, you could go for the native Qt with C# bindings but I think WPF is by far your best bet. Consider your coding style - if you are already used to using bindings and commands, or event handlers, WPF is the closest conceptually.
I don't think it's a good idea to consider using C# to call a native library but if you go that way, please let us know how it works out!
WPF or Silverlight (for web+desktop projects)
精彩评论