首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在渲染控件时,我可以将英文数字更改为阿拉伯语/波斯语表示吗?

在渲染控件时,我可以将英文数字更改为阿拉伯语/波斯语表示吗?
EN

Stack Overflow用户
提问于 2019-06-06 03:08:25
回答 2查看 0关注 0票数 0

英语数字(12345678)和一些其他符号如十进制在波斯语(1234567890)或(3/1而不是3.1)中是不同的。我希望语言在我的控件中是可选的。

例如,当我将TextBlock的TextProperty设置为“2345”时,我希望它同时显示为“2345”和“2345”。

我可以在渲染控件时更改特定字体吗?我的意思是我覆盖渲染或其他一些方法,例如添加:

代码语言:javascript
复制
if (char=='5')
{
    char='۵';
}

或者还有其他方法吗?谢谢;

EN

回答 2

Stack Overflow用户

发布于 2019-06-06 11:17:34

我使用一个简单的代码,我写道:

代码语言:javascript
复制
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;
}
票数 0
EN

Stack Overflow用户

发布于 2019-06-06 13:05:44

这里我的代码通过扩展方法将英文数字转换为波斯数字:

代码语言:javascript
复制
 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;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档