我厌倦了GUI的闪烁和每一个可能的控制,数百万篇关于双缓冲的文章,ControlStyle标志等甚至都不起作用;看看这个例子:
How to prevent a Windows Forms TextBox from flickering on resize?
在阅读了这个问题后,其他关于SO,以及网络上的很多文章我认为有2个选项,编写自己的控件,或者使用替代winforms。所以我的问题是:什么是可以轻松在Windows上与C#和.NET一起使用的好方法,甚至可能在Linux和Mac上使用(但这不是必需的)?但是,如果我错过了所有那些混乱的东西,我会很高兴,如果你纠正我。
一个重要的事情,尽管闪烁和其他问题令人讨厌,它们并不能阻止工作完成,所以替代优先事项是完全正常运作,否则,最好坚持使用古代的winforms。
答案 0 :(得分:7)
WPF,如果您使用的是.NET平台,那将是您对Windows窗体的回答。
答案 1 :(得分:6)
答案 2 :(得分:2)
我从未在使用C#.NET的VS2008的winform程序中遇到过闪烁。但是,如果您想要替代方案,则可以始终调用本机WIN API函数。它比使用winforms要复杂得多,所以你可能会后悔。您将不得不编写大量代码来填充和检索控件中的数据。
开发.NET的原因是为了简化编程(并将数百万程序员锁定在Microsoft平台上)。我对此很开心。如果你花时间去学习.NET平台,我认为你最好坚持下去。每个开发系统都有自己的特点,你可能比使用.NET时遇到更多麻烦,当你遇到问题时可能更难找到帮助你的人。
答案 3 :(得分:2)
你见过this SO question吗?它可能会帮助你解决闪烁的问题。
答案 4 :(得分:0)
如果您不准备考虑使用WPF,您可以使用C# bindings寻找原生Qt,但我认为WPF是目前最好的选择。考虑您的编码风格 - 如果您已经习惯使用绑定和命令,或事件处理程序,WPF是最接近概念的。
我认为考虑使用C#调用本机库不是一个好主意,但如果你这样做,请告诉我们它是如何工作的!
答案 5 :(得分:0)
WPF或Silverlight(适用于网络和桌面项目)