0

是否可以通过 Script#或其他 C# 到 JS 转换器将标准System.Drawing.Graphics方法(如DrawImageDrawPathcontext.drawImagecontext.beginPath(); ... context.closePath();

编译后如何在不编辑 .js 文件的情况下自动执行此操作?

4

1 回答 1

1

我遇到过同样的问题。

您在画布上绘制的方式与使用 System.Drawing.Graphics 的方式并不完全相同。一个解决方案是在 System.Drawing.Graphics 上创建一个抽象,如下所示:

public interface IDrawingContext{
   void Save();
   void Restore();
   void DrawLine(int x1, int y1, int x2, int y2, string color, int strokeWidth);
   void DrawText(int x, int y, string text, string color);
   object DrawRect(int x, int y, int width, int height, object fill, string strokeColor);
   object DrawPoly(List<Coordinate> points, object fill, string strokeColor, int strokeWidth);
   object DrawCircle(int x, int y, int radius, object fill, string strokeColor);
   object Transform(int translateX, int translateY, int rotate);
   .
   .
   .
   void Clear();
}

在 script# 中创建一个实现此接口的类,并使用 script# System.Html.Media.Graphics 命名空间对画布进行本地调用。在 C# 项目中做同样的事情,但使用 System.Drawing.Graphics

接下来是重构现有的绘图代码以使用 IDrawingContext 而不是 System.Drawing.Graphics

于 2012-10-19T13:55:32.083 回答