是否可以使用包含下标或(和 - 同时)上标名称输出文本所需的所有格式的字符串?
我希望有一个具有此类指定的资源文件,以便在各种应用程序类型(桌面,Web,移动(至少是UWP)等)之间共享它。所以我可以用相同的方式在GUI中显示它们。
如果没有,我如何存储具有此类名称(子标题和上标)的文本,然后以XAML或HTML格式显示?
也许我应该有一些自定义类(例如,在模型层内),使用Value,SubscriptText,SuperscriptText等属性,然后将这个类容纳到每个案例中(比如,在视图模型层内部,或者在视图层内部,如XAML)或HTML),还是有更好的解决方案?
的 UPDATE ---------------------------------------------- ---------------
我需要所有这些来显示公式的名称,如
ω<子>最大子>
在UWP和WPF GUI以及我的站点(HTML)中。
我没有找到一种更方便的方式,而不仅仅是拆分部件中的指定(指定本身,订阅部件等),将这些部件存储在某处(例如.resx文件),然后在每个部件上使用自定义帮助器GUI层获取这些部分并在GUI中显示它们。
现在我决定以下列方式将每个这样的名称存储在.resx文件中(在.NET标准库中)
然后我使用属性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";
甚至直接在Visual Studio中输入(或复制并粘贴)它:
string mySubscriptAndSuperscriptString = "ωₘₐₓ\u00B2";
都产生ω max 2 。
缺点是您必须通过逐个复制粘贴或为每个字符键入完整的Unicode代码来键入所有字符。并且你不能同时有下标和上标(一个严格垂直在另一个上面),所以“2的幂”不会位于“max”的右边,而是严格地高于它。