如果文本包含“\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人员为近似文本所做的工作。)