是否可以通过 Script#或其他 C# 到 JS 转换器将标准System.Drawing.Graphics
方法(如DrawImage
DrawPath
context.drawImage
context.beginPath(); ... context.closePath();
编译后如何在不编辑 .js 文件的情况下自动执行此操作?
是否可以通过 Script#或其他 C# 到 JS 转换器将标准System.Drawing.Graphics
方法(如DrawImage
DrawPath
context.drawImage
context.beginPath(); ... context.closePath();
编译后如何在不编辑 .js 文件的情况下自动执行此操作?
我遇到过同样的问题。
您在画布上绘制的方式与使用 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