小编Ped*_*ini的帖子

动态添加文本到 SVG 路径

我有一个从 Adob​​e 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 生成的,因此我还可以尝试不同的导出选项,以获得适合我的目标的输出。

javascript svg text

5
推荐指数
1
解决办法
5984
查看次数

在关联来自不同基类的派生类时避免双向依赖

我正在研究一个模型,可以用一堆不同的车辆做一些事情。每个 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)

c# polymorphism dependencies

4
推荐指数
1
解决办法
400
查看次数

标签 统计

c# ×1

dependencies ×1

javascript ×1

polymorphism ×1

svg ×1

text ×1