如果文本包含“\n”,我似乎无法将文本添加到 Canvas 。我的意思是,换行符没有显示/起作用。

ctxPaint.fillText("s  ome \n \\n <br/> thing", x, y);

上面的代码将在一行上绘制"s ome \n <br/> thing"

这是fillText的限制还是我做错了? “\n”在那里,没有打印,但它们也不起作用。

最佳答案

恐怕这是Canvas的fillText的限制。没有多行支持。更糟糕的是,没有内置的方法可以测量线的高度,只有宽度,这使您自己做起来更加困难!

很多人编写了自己的多行支持,也许最著名的项目是Mozilla Skywriter

您需要做的要点是多次fillText调用,同时每次将文本的高度添加到y值。 (我相信,测量​​M的宽度是Skywriter人员为近似文本所做的工作。)

09-25 20:17