【问题标题】:How can I superscript specific characters a wpf string binding? [duplicate]如何为 wpf 字符串绑定上标特定字符? [复制]
【发布时间】:2019-03-15 05:38:50
【问题描述】:

我正在尝试为 wpf 绑定上标,例如: c#:

public string PolynomialAsString = "10x^2 + 3x - 1";

xaml:

<TextBlock Grid.Row="1" Text="{Binding PolynomialAsString}" />

在 wpf 应用程序中显示为:10x² + 3x - 1。

我发现的唯一方法是在线硬编码xaml 中的上级位置,如下所示:

<TextBlock>
    <Run>Normal Text</Run>
    <Run Typography.Variants="Superscript">Superscript Text</Run>
    <Run Typography.Variants="Subscript">Subscript Text</Run>
</TextBlock>

但我想动态执行此操作,因为我不知道上标的位置。

非常感谢任何帮助

【问题讨论】:

  • 将 ^ 替换为 如此处所述stackoverflow.com/a/41223500/3201354
  • @Jignesh 我试过了,但是当它绑定到TextBlock 时它似乎不起作用,而且 unicode 模式只对 ^2 和 ^3 是一致的
  • 尝试以下方法之一:stackoverflow.com/a/9071856/1136211
  • 您始终可以派生自己的 SuperScriptTextBlock,它会在绑定更新时自行解析和添加内联。我已经为突出显示文本做了类似的事情。虽然很痛。不敢相信没有更好的方法。

标签: c# wpf xaml


【解决方案1】:

我找到了使用wpf-math 库的解决方案。

这是一个例子:

'c#':

public string PolynomialAsString = "10x^2 + 3x - 1";

'xaml':

<Window ... xmlns:controls="clr-namespace:WpfMath.Controls;assembly=WpfMath">
    <controls:FormulaControl Grid.Row="1" Formula="{Binding PolynomialAsString}" />
</ Window>

【讨论】:

    猜你喜欢
    • 2011-04-27
    • 2011-10-20
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 2014-09-08
    • 2018-12-04
    • 2020-08-06
    • 1970-01-01
    相关资源
    最近更新 更多