我有一个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/