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

Windows窗体绘图效率低下-C#,c#,winforms,drawing,C#,Winforms,Drawing,我是一名二年级学生,我们的教员使用C#和Windows窗体环境来说明和演示编程原理。不过,我自学C++,就在我学习新的C代码时(这两个代码都很好)。 我对一些事情很好奇:到目前为止,我对构造和绘制时间表单从未遇到过问题,但由于我使用了一个简单的1280x1024(4:3)图像作为我的一个表单的背景图像,我非常失望。现在,为了避免窗体首次启动时控件闪烁,我执行了以下操作: protected override CreateParams CreateParams {

我是一名二年级学生,我们的教员使用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的电脑的速度)之后才能显示任何东西


故障是否在于c#编译的方式、WinForms环境,或者是我没有尝试过的解决方案。

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

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

WPF是一条路要走

我很失望

winforms不建议用于任何新项目。仅用于维护遗留应用程序

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

有什么解决办法我还没试过吗

现在正在进行,他们非常强调基于XAML的UI技术,如WPF和WinRT,作为Windows UI开发的“现在和未来”


底线:忘记winforms。它是无用的,不推荐使用。它需要一堆可怕的黑客来做任何事情,即使有了这些黑客,它也无法提供从现代UI技术中获得的一小部分结果。没有人关心它,微软已经将它置于“维护模式”,在这种模式下,他们修复了报告的任何关键错误,但不会向其添加任何功能。

这样做的方式是,您将找到的代码归为属性。发布一个指向作者个人资料的链接和一个指向找到代码的帖子的链接。这是站点许可证所要求的。可能会让发布它的人也对帮助你感兴趣。