为什么感叹号出现在文本的前面

时间:2012-05-29 19:51:22

标签: c# .net wpf

我只使用一些文本填充TextBlock! (感叹号)结尾。而且!出现在文本前面。

所以而不是

  

一些文字!

我看到了

  

!一些   文本

怎么可能?

有任何线索吗?

谢谢!


CODE

  TextBlock tb = new TextBlock();

  tb.Text = Text;

  lstItems.Children.Add(tb); // lstItems is a StackPanel

1 个答案:

答案 0 :(得分:5)

最有可能的是,TextBlock的祖先将其FlowDirection设置为RightToLeft。请尝试将其重置为LeftToRight

tb.FlowDirection = FlowDirection.LeftToRight;

编辑:理由有点复杂;它与bi-directional text的呈现方式有关。来自维基百科:

  

标点字符[...]可以出现在LTR和RTL脚本中。它们被称为“弱”字符,因为它们不包含任何方向信息。因此,由软件决定将这些“弱”字符放在哪个方向。

WPF将您的!视为与文本的其余部分分开,并将其放置在方向的流程之后(在这种情况下,向右侧左侧)。< / p>