Windows 窗体绘图效率低下 - C#

本文关键字:效率 窗体 绘图 Windows | 更新日期: 2023-09-27 17:56:35

我是二年级学生,我们的教师使用 C# 和 Windows 窗体环境来说明和演示编程原则。然而,就我学习新的C#代码而言,我自学C ++(在这里很高兴知道两者)。

我对一些事情很好奇:到目前为止,我从来没有遇到过构造和绘制表单所需的时间问题,但是由于我使用简单的 1280x1024(4:3) 图像作为我的一个表单的背景图像,我非常失望。现在为了避免表单第一次出现时控件的闪烁,我做了以下操作:

    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams cp = base.CreateParams;
            cp.ExStyle |= 0x02000000;  // Turn on WS_EX_COMPOSITED
            return cp;
        }
    }

链接 : 如何修复用户控件中的闪烁

这解决了前面提到的问题,但是,现在我必须等待 1.5 秒(取决于我运行 exe 的 PC 的速度)才能显示任何内容。

错误是否在于 c# 编译方式、WinForms 环境,还是有一些我没有尝试过的解决方案。

Windows 窗体绘图效率低下 - C#

不幸的是,这是一个黑客(CreateParams),这是由SO用户描述的

http://angryhacker.com/blog/archive/2010/07/21/how-to-get-rid-of-flicker-on-windows-forms-applications.aspx

所以它会做一些有趣的事情,慢,最大/最小化按钮不起作用。

WPF 是要走的路...

我很失望

不建议将WinForms用于任何新项目。仅用于维护旧版应用程序。

它不是硬件加速的,根本不是为当今的 UI 需求而设计的。

有没有我还没有尝试过的解决方案?

Microsoft构建会议正在进行中,他们强调了很多基于XAML的UI技术,如WPF和WinRT,作为Windows UI开发的"现在和未来"。

一句话:忘记赢形。它是无用的,并且已弃用。它需要一堆可怕的黑客来做任何事情,即使有这些黑客,它也不能提供你从现代UI技术中获得的一小部分结果。没有人关心它,Microsoft已将其置于"维护模式",他们修复报告的任何关键错误,但不会向其添加任何功能。