我有一个从 Adobe Illustrator 导出的 SVG,其中有几个像这样的路径,它会生成一个我打算用作文本框的小多边形
<svg viewbox="387 390 74 20">
<g>
<path class="st37" d="M452,408h-56c-4.42,0-8-3.58-8-8l0,0c0-4.42,3.58-8,8-8h56c4.42,0,8,3.58,8,8l0,0 C460,404.42,456.42,408,452,408z" />
</g>
</svg>Run Code Online (Sandbox Code Playgroud)
我想动态添加文本。我在这里看到了许多类似的问题,但其中大多数涉及基于路径元素的 x 和 y 属性为文本元素指定 ax 和 y 属性。然而,我的路径没有这样的属性。
我尝试使用textPath元素,其中 xlink:href 指向我的路径。我附加到了path,但文本包裹了我的path元素而不是位于其中。
那么,有没有办法实现这一点呢?我对这里不同的解决方案持开放态度。我的梦想是使用 javascript 获取路径元素并从那里添加文本。但我也可以编辑基本 SVG 文件来添加文本或任何其他相关元素和属性来完成这项工作,只要我稍后可以从 javascript 动态更改文本即可。由于此 SVG 是由 Illustrator 生成的,因此我还可以尝试不同的导出选项,以获得适合我的目标的输出。
我正在研究一个模型,可以用一堆不同的车辆做一些事情。每个 Vehicle 都应该做一些事情,但每种 Vehicle 类型做不同的事情。所以我使用 .NET Framework 以这种方式实现了它:
abstract class Vehicle
{
abstract void DoStuff()
}
class Car : Vehicle
{
override void DoStuff()
{
//Do some Car stuff here
}
}
class Motorcycle : Vehicle
{
override void DoStuff()
{
//Do some Motorcycle stuff here
}
}
class Model
{
RunModel(Vehicle[] vehicleCollection)
{
foreach(Vehicle currentVehicle in vehicleCollection)
{
currentVehicle.DoStuff()
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的程序的核心功能,它按预期工作。现在我应该根据每辆车所做的事情输出报告。每种类型的车辆都应该输出不同类型的报告,所以我为它做了一个类似的解决方案:
abstract class Vehicle
{
abstract void DoStuff();
abstract Report GetReport();
}
class Car : Vehicle
{ …Run Code Online (Sandbox Code Playgroud)