c# - 如何在C#中绘制简单的图形?

标签 c# .net graphics directx 2d

我只想在 C# 中绘制简单的 2D 对象,如圆、线、正方形等。我怎么做?回到 Turbo C++ 时代,我记得初始化一些图形库来做同样的事情。我需要在 .NET 中做类似的事情吗? 3D 对象有什么不同吗?像 DirectX 这样的东西会让这更容易吗?非常感谢任何指向教程或示例的链接。

最佳答案

正如其他人所说,查看 System.Drawing . (为了完整起见,我只是重复了一遍。)System.Drawing 公开了 GDI+ Windows 绘图库到您的应用程序。

可在 C# Corner 找到帮助您快速入门 System.Drawing 和 GDI+ 的好教程。 .

需要注意的一些重要事项:

  1. 许多 GDI+ 对象实现 IDisposable 接口(interface),因此应该包装在 using block 中。请务必遵守适当的处置惯例;未能处置 GDI+ 对象可能会给您的应用程序带来非常严重的副作用。 (.NET 中的 GDI+ 对象对应于它们的底层 Windows API 等价物。)
  2. 诸如 DirectX 之类的 API 非常复杂,这是有充分理由的。它们不是为简单的形状而设计的,而是为复杂的、高性能的和高度交互的多媒体应用而设计的。 (换句话说,通常是游戏。)您可以通过 Managed DirectX 接口(interface)访问 DirectX,但同样,对于您的直接目的来说,这可能有点矫枉过正。
  3. 如果您对使用 DirectX 的更简单方法感兴趣,XNA是要走的路。然而,这在很大程度上是一个特定于游戏的库,而且很可能又是矫枉过正。我来晚了一点,但根据下面的评论,这根本不再受支持。 (这是有道理的;我已经很多年没有听说过它了。)

关于c# - 如何在C#中绘制简单的图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1302741/

相关文章:

c# - 我的 INTEROP 代码片段有什么问题?

c# - 在不使用额外变量或使用 foreach 循环的情况下显示 List<string[]> 的值

Java图形性能

.net - .NET 中的循环 DLL 依赖项

c# - 当我最小化我的应用程序时,我所有的绘图都消失了

java - 如何在 JList 之外使用自定义 JList 渲染器的结果?

ruby - "good"Ruby 绑定(bind)存在哪些图形工具包?

c# - Task.Delay 是否真正像 I/O 操作那样异步,即它是否依赖于硬件和中断而不是线程?

C# 等待 MethodInvoker 完成

c# - FileSystemWatcher OnCreated 仅针对复制的多个文件中的第一个文件触发