3

英語の数字 (12345678) と 10 進数などのその他の記号は、ペルシア語 (۱۲۳۴۵۶۷۸۹۰) または (3.1 ではなく ۳/۱) では異なります。コントロールで言語をオプションにしたい。

たとえば、TextBlock の TextProperty を "2345" に設定すると、必要に応じて "2345" と "۲۳۴۵" の両方が表示されるようにします。

コントロールがレンダリングされているときに特定のフォントを変更できますか? つまり、render またはその他のメソッドをオーバーライドして、たとえば次のように追加します。

if (char=='5')
{
    char='۵';
}

または他の方法はありますか?ありがとう;

4

3 に答える 3

9

私が書いた簡単なコードを使用します:

private string toPersianNumber(string input)
{
   string[] persian = new string[10] { "۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹" };

   for (int j=0; j<persian.Length; j++)
       input = input.Replace(j.ToString(), persian[j]);

     return input;
}
于 2013-12-11T11:43:52.503 に答える
1

ここで私のコード拡張メソッドによって英語の数字をペルシャ数字に変換します:

 private static readonly string[] pn = { "۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹" };
    private static readonly string[] en = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };

public static string ToPersianNumber(this string strNum)
    {
        string chash = strNum;
        for (int i = 0; i < 10; i++)
            chash = chash.Replace(en[i], pn[i]);
        return chash;
    }
    public static string ToPersianNumber(this int intNum)
    {
        string chash = intNum.ToString();
        for (int i = 0; i < 10; i++)
            chash = chash.Replace(en[i], pn[i]);
        return chash;
    }
于 2017-10-24T07:50:54.487 に答える