2011-08-12 4 views
7

私はFormattedTextアイテムを持っています。私はRightToLeftに設定されたflowdirectionを持っており、どのように動作するのか分かりません。私の弦は本当に矛盾して変わります。WPF: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" 

なぜ数字が最後まで来て、1つの括弧が先頭に移動して方向を切り替えるのですか?

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と同じ文字列を読み込むように各文字列を表示できるようにする必要があります。

ありがとうございます!

答えて

2

のTextInfoは、流れ方向を所有しており、それは、WPF流れ方向を上書きします。

あなたはアラビア語で入力するか、ヘブライ語のであれば、それは自動的に方向を「右から左へ」を使用します。しかし、記号 ";"、 ""(スペース)を使用すると問題があります。それは両方の方向にすることができ、それはので、ここであなたは、カスタムWPF流れ方向を使用する必要があり、アラビア語で「左から右」として置くことができるようCompilorは考えています。

あなたの例では、コンパイラは英語の文字を知っていて、「左から右」の方向を使用しますが、スペースと数字で狂ってしまいます。

Hereは本の中の良い部分へのリンクと同様の質問です。

+0

私はついにこの記事を読んでいました。それは実際に私の問題を解決する方法を言うdoesnt ...本当の解決策はありませんか? – Toadums

+0

私はあなたが欲しいものを理解していません。 あなたは、文字列を逆にしたい場合は、より良いhttp://www.csharp411.com/c-string-tips/ここのような静的関数を使用して、手動で行う必要がありますよりも、 – Artru

関連する問題