【问题标题】:Alternative to winforms that can be easily used with C# and .NET可轻松与 C# 和 .NET 一起使用的 winform 的替代品
【发布时间】:2011-04-11 06:07:33
【问题描述】:

我厌倦了闪烁的 GUI 和所有可能的控件,数百万关于双缓冲、ControlStyle 标志等甚至不起作用的文章;看看这个例子:

How to prevent a Windows Forms TextBox from flickering on resize?

在阅读了这个问题、SO 上的其他问题以及网络上的许多文章后,我认为有 2 个选项,编写自己的控件,或者使用 winforms 的替代方案。所以我的问题是:在 Windows 上,甚至可能在 Linux 和 Mac 上,可以轻松与 C# 和 .NET 一起使用(但这不是必需的)有哪些好的替代方案?但是,如果我错过了所有这些窗户混乱的东西,如果你纠正我,我会很高兴。

有一点很重要,虽然闪烁和其他问题很烦人,但它们不会妨碍工作的完成,因此替代方案优先考虑的是功能齐全,否则,最好坚持使用古老的 winform。

【问题讨论】:

    标签: c# .net winforms


    【解决方案1】:

    这些替代品怎么样?

    【讨论】:

      【解决方案2】:

      WPF,如果您在 .NET 平台上,这将是您对 Windows 窗体的回答。

      【讨论】:

      • 只是为了确定——如果我选择 WPF,我会比使用 win 表单更依赖于 windows,对吧?
      • @SuitUp - 是的。 Winforms 代码更容易移植到其他一些 GUI 工具包。
      【解决方案3】:

      我从未在 C#.NET 中使用 VS2008 在我的 winform 程序中遇到闪烁。但是,如果您想要一个替代方案,您可以随时调用本机 WIN API 函数。虽然它比使用 winforms 复杂得多,所以你可能会后悔。您将不得不编写大量代码来填充和检索控件中的数据。

      开发 .NET 的原因是为了简化编程(并将数百万程序员锁定在 Microsoft 平台上)。我对此很开心。如果您花时间学习 .NET 平台,我认为您最好还是坚持下去。每个开发系统都有自己的特点,您可能会比使用 .NET 遇到更多的麻烦,而且当您遇到问题时可能更难找到帮助您的人。

      【讨论】:

      • 检查我的问题中的链接,有信息如何在第一篇文章中重现闪烁(实际上也是问题)。
      • 好的,我按照你的建议做了这个项目,当我调整它的大小时,控件确实在闪烁。这是正常的 Windows 行为。当我调整窗口大小并且 Windows 重新呈现文本时,我在 Microsoft Word 中观察到类似的行为。我的意思是,有什么问题?用户多久调整一次他们正在使用的窗口的大小?大多数人要么将窗口保留为原始大小,要么将其调整为他们喜欢的一种大小,要么最大化窗口。这是一个不需要解决的问题。在我看来。除非我又误会了。
      【解决方案4】:

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

      我认为考虑使用 C# 调用本机库不是一个好主意,但如果你这样做,请告诉我们它是如何工作的!

      【讨论】:

        【解决方案5】:

        你见过this SO question吗?它可能会帮助您解决闪烁的问题。

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-16
            • 2017-09-26
            • 1970-01-01
            • 1970-01-01
            • 2019-12-18
            相关资源
            最近更新 更多