排队角色

时间:2015-03-26 08:05:56

标签: c# text alignment

我有一个由两个数字组成的组合框;英寸和毫米。目前看起来很可怕。我想知道这里的一些大师是否有任何衬里字符'|'或者至少让它变得更好?

enter image description here

一些背景信息,数字英寸和毫米是单独的字符串,我像这样附加在一起:

Size(in) + " (In) | " + Size(mm) + " (mm)"

2 个答案:

答案 0 :(得分:2)

最简单的方法可能是将每个数字格式化为至少3英寸的小数位数。这仍然不会很完美,因为字母字体宽度不会很完美,以解决您需要使用等宽字体的问题。

要格式化为3dp,您可以使用以下

String.Format("{0:f3}", Size(in)) + " (In) | " + Size(mm) + " (mm)"

由于您有一些小数点前两位数的值,因此您可以始终使用PadLeft来对齐这些值,但是如果没有等宽字体,这并不总是有效。

String.Format("{0:f3}", Size(in)).PadLeft(5, ' ') // or (5, '0')

答案 1 :(得分:1)

使用String.PadRight(i);String.PadLeft(i); i为nr。空间到"填充":

示例:

// Just to simplify a little, create vars:
var inches = Size(in) + " (In) ";
var mm = " + Size(mm) + " (mm)";

var formatted = inches.PadRight(15) + "|" + mm.PadLeft(15); 

使用15作为填充值的输出示例(显然,您可以根据需要进行调整):

43 inches      |         123 cm
445554 inches  |       12345 cm