如何在c#中直接编写或管理图形内存?

时间:2010-04-07 04:28:01

标签: c#

以前我使用的是图片框及其内置实用程序来绘制一些重型图形,最初它工作得很好但是当我的GUI增长其响应并且更新时间变得足够大以至于显示延迟时,现在我想直接写入图形内存来解决这个问题:

首先告诉我这是一个好主意,如果是,那么我需要一些指导方针,或任何其他好的选择将被接受

问候,

4 个答案:

答案 0 :(得分:2)

你无法在GDI +中真正做高性能的图形工作。除了没有硬件加速的事实之外,API并不是为它而设计的。

如果您想要对可写位图进行原始访问,可以使用Bitmap.LockBits方法。但是你需要自己实现所有的图形例程。另一个选项是Managed DirectX

答案 1 :(得分:2)

这可能不是你想要的,但你可以尝试使用WPF。但它有一个陡峭的学习曲线。它有一种更智能的渲染图形方式,尽可能使用你的图形卡功能,以便更好地利用你的计算机资源。

答案 2 :(得分:0)

这取决于你想要走多远。您可以使用GDI+并将一些非托管代码混合到C#中,以更好地掌握图形功能。学习使用Bitmap类并密切关注你的引用(我曾多次遇到过对位图的悬空引用。)

如果您正在寻找.NET中的高性能图形,请查看Managed DirectX

答案 3 :(得分:0)

如果您想控制图形,请查看XNA Dev center。虽然它是专为游戏设计的,但没有任何东西可以阻止您在计算机上将其用于其他目的。

如果您正在寻找能够与标准用户界面更好地融合的内容,那么您可能需要查看WPF。它具有一些3D功能,并且在2d加速时效果很好。