用于C#和.NET的易于使用的winforms替代方案

5
我厌倦了GUI和各种控件的闪烁,以及数百万关于双缓冲、ControlStyle标志等根本行不通的文章;看看这些例子:如何防止Windows Forms文本框在调整大小时闪烁?。在阅读了这个问题、其他SO上的问题以及网上的许多文章之后,我认为有两个选择:编写自己的控件或使用winforms的替代品。因此,我的问题是:有哪些好的替代方案可以与C#和.NET在Windows上轻松使用,甚至可以在Linux和Mac上使用(但这并非必要)?但如果我在所有的windows混乱中错过了什么,如果您能纠正我,我将不胜感激。
一个重要的事情是,虽然闪烁和其他问题很烦人,但它们并没有妨碍工作的完成,因此替代方案的优先级是完全功能性,否则最好坚持使用古老的winforms。
6个回答

6

6
如果您在.NET平台上,WPF将成为您替代Windows Forms的选择。

2
只是为了确认 - 如果我选择WPF,那么我将比使用Win Forms更加依赖于Windows系统,对吗? - SuitUp
@SuitUp - 是的。Winforms代码更容易移植到其他GUI工具包。 - Robert Jeppesen

2

1

我在使用C#.NET的VS2008编写winform程序时从未遇到过闪烁问题。然而,如果你想要另一种选择,你可以调用本地WIN API函数。但是这比使用winforms要复杂得多,所以你可能会后悔。你将不得不编写大量代码来填充和检索控件中的数据。

.NET的开发目的是为了使编程更加容易(并将数百万程序员锁定在Microsoft平台上)。我非常满意它。如果你已经投入了学习.NET平台的时间,我认为你最好坚持使用它。每个开发系统都有其自己的特点,你可能会比使用.NET更加困难,并且在遇到问题时可能更难找到帮助。


请查看我提问中的链接,第一篇帖子(实际上也是问题)中有关于如何复现闪烁的信息。 - SuitUp
好的,我按照你的建议完成了这个项目,确实在调整大小时控件会闪烁。这是Windows的正常行为。当我调整Microsoft Word窗口大小时,也会观察到类似的行为,因为Windows重新渲染文本内容。我的意思是,问题出在哪里?用户有多经常调整他们正在使用的窗口大小?大多数人要么将窗口保持原始大小,要么调整为喜欢的特定大小,要么将窗口最大化。这不是一个需要解决的问题。在我看来。除非我再次误解了什么。 - James Carr

0

如果你不准备考虑使用WPF,你可以选择具有C#绑定的本地Qt,但我认为WPF是你最好的选择。考虑你的编码风格 - 如果你已经习惯于使用绑定和命令,或者事件处理程序,那么WPF在概念上是最接近的。

我认为考虑使用C#调用本地库不是一个好主意,但如果你走这条路,请告诉我们它的工作情况!


0

WPF或Silverlight(用于Web+桌面项目)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接