我有一个FormattedText项目。我已将flowdirection设置为RightToLeft,但是我不确定它是如何工作的。它确实不一致地改变了我的琴弦。

我以为它只需要一个字符串,然后向后显示(通过字符或单词),但是在测试中却做得更奇怪。

===================================================

例子,

the string "90%", is displayed as "%90"

为什么%符号会从头到尾?
the string "12 34 56 this is my (string)"
is displayed as "(this is my (string 56 34 12"

为什么数字会移到末尾,而括号会移到开头和切换方向?
the string "this is a string"
is displayed as "this is a string"

为什么在这种情况下什么也没发生?

===================================================

我的formattedText看起来像这样:
FormattedText sectionNum = new FormattedText(
   sectNum,
   CultureInfo.CurrentCulture,
   FlowDirection.RightToLeft,
   new Typeface("Verdana"),
   14,
   Brushes.Black);
context.DrawText(sectionNum, new Point(790 - 96, 20));

有人知道发生了什么吗?我需要能够显示每个字符串,以便在将其设置为RightToLeft时,其读取结果与LeftToRight相同。

谢谢!

最佳答案

TextInfo拥有自己的FlowDirection,它会覆盖WPF FlowDirection。

因此,如果您输入阿拉伯语或希伯来语,它将自动使用“从右向左”方向。但是,如果使用符号“;”,“”(空格),则会出现问题。编译器认为它可以双向使用,并且可以用阿拉伯语“从左到右”放置,因此在这里应使用自定义Wpf FlowDirection。

在您的示例中,编译器了解英语字母,并使用“从左到右”方向,但对空格和数字却非常着迷。

Here是类似的问题,具有指向书中大部分内容的链接。

关于c# - WPF:FlowDirection.RightToLeft如何更改字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7045676/

10-12 16:03