XAML和HTML兼容的下标或(和)上标文本

时间:2017-11-28 09:20:40

标签: c# html xaml uwp

是否可以使用包含下标或(和 - 同时)上标名称输出文本所需的所有格式的字符串?

我希望有一个具有此类指定的资源文件,以便在各种应用程序类型(桌面,Web,移动(至少是UWP)等)之间共享它。所以我可以用相同的方式在GUI中显示它们。

如果没有,我如何存储具有此类名称(子标题和上标)的文本,然后以XAML或HTML格式显示?

也许我应该有一些自定义类(例如,在模型层内),使用Value,SubscriptText,SuperscriptText等属性,然后将这个类容纳到每个案例中(比如,在视图模型层内部,或者在视图层内部,如XAML)或HTML),还是有更好的解决方案?


UPDATE ---------------------------------------------- ---------------

我需要所有这些来显示公式的名称,如

ω<子>最大

在UWP和WPF GUI以及我的站点(HTML)中。

我没有找到一种更方便的方式,而不仅仅是拆分部件中的指定(指定本身,订阅部件等),将这些部件存储在某处(例如.resx文件),然后在每个部件上使用自定义帮助器GUI层获取这些部分并在GUI中显示它们。

现在我决定以下列方式将每个这样的名称存储在.resx文件中(在.NET标准库中)

  • MyValueDesignation:ω
  • MyValueSubscript:max

然后我使用属性Designation和Subscript创建了自定义属性DesignationAttribute,其中我将指定的部分存储在模型层(或应用此属性的位置)。我这样使用它:

[Designation(
    resourceType: typeof(Resources.Models.Designations),
    designation: "MyValueDesignation",
    subscript: "MyValueSubscript")]
public double MyValue { get; set; }

然后,我从每个GUI层中的DesignationAttribute获取这些指定的部分,并通过自定义帮助程序将它们放入GUI中。例如,在HTML层上,我为HtmlHelper创建了一个扩展,以获取指定的部分,并将它们作为准备好的HTML字符串返回,如

<span>ω<sub>max</sub></span>

在WPF层我也使用自定义助手来返回标记,如下所示:

<TextBlock>
  <Span>
    ω
  </Span>
  <Span
    Style="{StaticResource labelSubscript}">
      max
  </Span>
</TextBlock>


UPDATE -------------------

另一个解决方案是使用这样的Unicode符号:

string mySubscriptAndSuperscriptString = "ω\u2098\u2090\u2093\u00B2";

Example

甚至直接在Visual Studio中输入(或复制并粘贴)它:

string mySubscriptAndSuperscriptString = "ωₘₐₓ\u00B2";

都产生ω max 2

缺点是您必须通过逐个复制粘贴或为每个字符键入完整的Unicode代码来键入所有字符。并且你不能同时有下标和上标(一个严格垂直在另一个上面),所以“2的幂”不会位于“max”的右边,而是严格地高于它。

0 个答案:

没有答案