相关疑难解决方法(0)

Direct2D / GDI+ 和缓慢的 Windows 窗体绘制 - 可以做什么?

我经常使用 Visual Studio 2008、.NET C# 2.0-3.5 和 Windows 窗体,并且和我之前的许多人一样,我注意到 GDI+ 在绘制控件时非常慢。请注意,我不太处理图像(JPG、GIF 等)。图像仅作为某些地方的图标。这实际上是绘制缓慢的控件/表单/等。

问题是您可以看到正在绘制控件,并且可能需要几秒钟才能绘制一组看似简单的控件。即,它的滞后和可怕。

我已经做了一些测试,我只是在表单上放置了一些标签(40-50),按 F5 运行并且必须等待它们被绘制。再次,滞后而不是一个很好的体验。

所以,WPF 可能会解决这个问题,但我/我们还没有准备好转向 WPF。所以我在四处寻找解决方法或修复程序,我偶然发现了 Direct2D,在阅读其他一些库时。

让我有点困惑,因此这些问题:

1) 首先,我想要的是一种相当简洁和简单的方法,可以更快的硬件加速方法替换GDI+。是否可以在不转到 WPF 并且不必重写我所有的 Windows 窗体代码的情况下做到这一点?

每当我在 Direct2D 上阅读任何内容时,我都会看到很长的通常可怕的 C++ 代码块,告诉我如何手动编写用于绘图的代码。我不要那个。

2) 在网上阅读时,我偶然发现了 SlimDX,但我不知道如何使用它(我承认,我在写作时还没有尝试过很多)。假设我已经有了一个 GUI 应用程序(Windows 窗体,标准 C# 代码)——我能不能以某种方式使用 SlimDX(或类似的东西)来“替换”GDI+ 而不需要太多重写?

我的问题是我找不到任何示例或类似的例子来告诉我是否可以在我已经创建的 Windows 窗体软件中使用 SlimDX、Direct2D 或其他类似的东西,如果可能的话 - 怎么做。

希望我不要太模糊 =)

==编辑== 2010-09-22

我已经在我的真实应用程序中进行了一些测试,并将缓慢的事情之一与此隔离开来:

当我向 UserControl 中的某些标签添加文本时,控件会调整自身大小以适应文本。例如,包含的 GroupControl 会根据刚刚添加到标签的 .Text-property 的文本大小进行一些调整。

大约有 10 个标签控件。第一次更新标签,从而改变大小,整个过程大约需要 500 毫秒。第二次更新标签,大小没有变化,大约需要 0 毫秒。

==编辑 2== 2010-09-22 …

c# gdi slimdx direct2d devexpress-windows-ui

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

devexpress-windows-ui ×1

direct2d ×1

gdi ×1

slimdx ×1