收据上的字符串对齐

String alignment on receipt

如何将字符串中的文字右对齐?

这是我生成字符串的代码

for (int i = 0; i <= qtd_itens - 1; i++)
{                                        
    String adicionais = dados_msg[i].addon;

    //A soma do pedido + os pontos devem dar 63 caracteres 80mm
    int qtd_pontos = 0;    

    int qtdLinhaPedido = 0;
    String LinhaPedido = Quantidade + "x " + item + " - " + preco + "\n";
    qtdLinhaPedido = LinhaPedido.Length;
    qtd_pontos = 80 - qtdLinhaPedido;                                  

    DadosPedido = String.Format("{0,-10}{1,"+qtd_pontos+"}", DadosPedido + Quantidade + "x " + item + "  ", preco + "\n");

    if (adicionais.Length > 10)
    {

    }
    else {
        DadosPedido = DadosPedido + "\n";
    }

    // using the method 
    String[] strlist = adicionais.Split('}');

    foreach (String s in strlist)
    {
        String Addon = s.Replace("[", "").Replace("]", "").Replace("{", "").Replace("}","").Replace(",\"addon_name","\"addon_name");
        Addon = "{" + Addon + "}";                                        
        if (Addon.Length > 15)
        {
            dynamic JsonAddon = JObject.Parse(Addon);
            String Item = JsonAddon.addon_name;
            String Qtd = JsonAddon.addon_qty;
            double Preco_AddonF = JsonAddon.addon_price;
            Preco_AddonF = Double.Parse(Qtd) * Preco_AddonF;
            string preco_addon = Preco_AddonF.ToString("C", CultureInfo.CurrentCulture);

            int qtdLinhaPedido = 0;
            String LinhaPedido = Qtd + "x " + Item + " " + preco_addon + "\n";
            qtdLinhaPedido = LinhaPedido.Length;
            qtd_pontos = 80 - qtdLinhaPedido;

            DadosPedido = String.Format("{0,-10}{1," + qtd_pontos + "}", DadosPedido + "  - " + Qtd + "x " + Item + " ", preco_addon+ "\n");
        }          
    }
    DadosPedido = DadosPedido + "\n";
    if (Instrucao_item.Length > 5)
    {
        DadosPedido = DadosPedido+"Obs: " + Instrucao_item+ "\n\n";
    }

其实我是用String.Format("{0,-10}{1," + qtd_pontos + "}",DadosPedido + Quantidade + "x " + item + " ("+ tamanho + ") ", preco + "\n");格式化字符串,但是价格不一致, 我希望整个价格部分右对齐并且值始终从同一位置开始。

只有使用 monospaced font 才能用 String.Format 完成。